Cómo configurar una variable para que sea la fecha de “Hoy” en Python/Pandas

3 minutos de lectura

Avatar de usuario de Alexis
alexis

Estoy tratando de establecer una variable para que sea igual a la fecha de hoy.

Busqué esto y encontré un artículo relacionado:

Establecer la fecha de hoy como valor predeterminado en el modelo

Sin embargo, esto no respondió particularmente a mi pregunta.

Usé lo sugerido:

dt.date.today

Pero después

import datetime as dt     
date = dt.date.today
print date
 <built-in method today of type object at 0x000000001E2658B0>

 Df['Date'] = date

No obtuve lo que realmente quería, que era un formato de fecha limpio de la fecha de hoy… en Mes/Día/Año.

¿Cómo puedo crear una variable del día de hoy para poder ingresar esa variable en un DataFrame?

  • Solo necesita llamar al método. date = dt.date.today()

    – mhléster

    12 de febrero de 2014 a las 20:11


  • Tenga en cuenta que cuando llegue el día siguiente, ese objeto de fecha seguirá representando el día anterior.

    – usuario2357112

    12 de febrero de 2014 a las 20:12

avatar de usuario de dirkjot
dirkjot

Mencionas que estás usando Pandas (en tu título). Si es así, no hay necesidad de usar una biblioteca externa, solo puede usar to_datetime

>>> pandas.to_datetime('today').normalize()
Timestamp('2015-10-14 00:00:00')

Esto siempre devolverá la fecha de hoy a la medianoche, independientemente de la hora real, y se puede usar directamente en pandas para hacer comparaciones, etc. Pandas siempre incluye 00:00:00 en sus fechas y horas.

reemplazando today con now le daría la fecha en UTC en lugar de la hora local; tenga en cuenta que en ninguno de los casos se agrega tzinfo (zona horaria).

En versiones de pandas anteriores a 0.23.x, normalize puede que no haya sido necesario eliminar la marca de tiempo que no es de medianoche.

  • pd.to_datetime('now') para ganar tiempo también.

    – elPastor

    13 de marzo de 2017 a las 18:15

  • En pandas 0.23.4, ‘Este Dia’ da la marca de tiempo actual (no solo la fecha) en la zona horaria local, y ‘ahora’ da la marca de tiempo actual en UTC. Entonces, el comportamiento de to_datetime ha cambiado. ¿Alguien sabe si este nuevo comportamiento llegó para quedarse? fuente

    – SV

    12 de noviembre de 2018 a las 21:07


  • Da una marca de tiempo desde v 0.23: 2019-04-26 15:31:27.103623

    – estancamientoUno

    26 de abril de 2019 a las 13:35

  • curr_date = pd.to_datetime('today').date() para obtener solo la fecha

    – NickNick

    7 de abril de 2020 a las 14:23


  • @NickNick .date() se convertirá en datetime.date. Para mantener la fecha como una marca de tiempo, use curr_date = pd.to_datetime(‘today’).normalize()

    –Julio Batista Silva

    8 de junio de 2020 a las 14:25

Si quieres una cuerda mm/dd/yyyy en vez de datetime objeto, puedes usar strftime (tiempo de formato de cadena):

>>> dt.datetime.today().strftime("%m/%d/%Y")
                   # ^ note parentheses
'02/12/2014'

Usando pandas: pd.Timestamp("today").strftime("%m/%d/%Y")

  • y por favor use ISO siempre que sea posible pd.Timestamp('today').strftime("%Y-%m-%d")

    – estancamientoUno

    26 de abril de 2019 a las 13:46

pd.datetime.now().strftime(“%d/%m/%Y”)

esto dará como resultado ’11/02/2019′

puedes usar agregar tiempo si quieres

pd.datetime.now().strftime(“%d/%m/%Y %I:%M:%S”)

esto dará como resultado ’11/02/2019 11:08:26′

formatos strftime

También puedes investigar pandas.Timestampque incluye métodos como .now y .today. A diferencia de pandas.to_datetime('now'), pandas.Timestamp.now() no se establecerá por defecto en UTC:

  import pandas as pd

  pd.Timestamp.now() # will return California time
  # Timestamp('2018-12-19 09:17:07.693648')

  pd.to_datetime('now') # will return UTC time
  # Timestamp('2018-12-19 17:17:08')

Avatar de usuario de Eugene Loy
Eugenio Loy

Tengo el mismo problema, así que probé muchas cosas, pero finalmente esta es la solución.

import time 

print (time.strftime("%d/%m/%Y"))

Avatar de usuario de Ghostali
fantasmal

Solución fácil en Python3+:

import time


todaysdate = time.strftime("%d/%m/%Y")

#with '.' isntead of "https://stackoverflow.com/"
todaysdate = time.strftime("%d.%m.%Y")

¿Ha sido útil esta solución?