¿Cómo convierto un datetime.datetime
objeto (p. Ej., El valor de retorno de datetime.datetime.now())
a un datetime.date
objeto en Python?
from datetime import datetime
, simplemente puede agregar la fechafrom datetime import datetime, date
¿Cómo convierto un datetime.datetime
objeto (p. Ej., El valor de retorno de datetime.datetime.now())
a un datetime.date
objeto en Python?
from datetime import datetime
, simplemente puede agregar la fechafrom datetime import datetime, date
Respuestas:
Usa el date()
método:
datetime.datetime.now().date()
datetime.datetime.utcnow()
y en consecuenciadatetime.datetime.utcnow().date()
datetime.datetime.now(pytz.timezone('US/Pacific')).date()
De la documentación:
Fecha de devolución objeto con mismo año, mes y día.
Usas el datetime.datetime.date()
método:
datetime.datetime.now().date()
Obviamente, la expresión anterior puede (y en mi humilde opinión :) debe escribirse como:
datetime.date.today()
.today()
) es la más pitónica para la pregunta de ejemplo indicada.
today()
tiene un componente de hora también. así que si lo hace: losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')
y entonces if losdat < datetime.datetime.today():
siempre será cierto porque losdat
tendrá un componente de tiempo de medianoche que caerá antes de la marca de tiempo detoday()
datetime.datetime.today()
lugar de datetime.date.today()
, cuando uno quiere un datetime.date
objeto?
Puede convertir un objeto datetime en una fecha con el método date () del objeto date time, de la siguiente manera:
<datetime_object>.date()
import time
import datetime
# use mktime to step by one day
# end - the last day, numdays - count of days to step back
def gen_dates_list(end, numdays):
start = end - datetime.timedelta(days=numdays+1)
end = int(time.mktime(end.timetuple()))
start = int(time.mktime(start.timetuple()))
# 86400 s = 1 day
return xrange(start, end, 86400)
# if you need reverse the list of dates
for dt in reversed(gen_dates_list(datetime.datetime.today(), 100)):
print datetime.datetime.fromtimestamp(dt).date()
puede ingresar este formulario de código para (fecha de hoy y nombres del día y hora) :
datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')
'19 -09-09 Lun 17:37:56 '
e ingrese este código para ( fecha de hoy simplemente) :
datetime.date.today().strftime('%y-%m-%d')
'19 -09-10 '
por objeto:
datetime.datetime.now().date()
datetime.datetime.today().date()
datetime.datetime.utcnow().date()
datetime.datetime.today().time()
datetime.datetime.utcnow().date()
datetime.datetime.utcnow().time()
datetime.date
objeto, y no una cadena, que strftime
devolvería (ref: docs.python.org/3/library/datetime.html#datetime.date.strftime ).
datetime.datetime.now()
, tenga en cuenta que hay un métododatetime.date.today()
.