para ser justo, essa resposta (usando .today()) é a mais pitônica para a pergunta de exemplo declarada.
Dannid
2
Se você usa hoje, tenha cuidado ao comparar uma data. today()tem um componente de hora também. por isso, se você faz: losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')e, em seguida, if losdat < datetime.datetime.today():será sempre verdade, porque losdatterá um componente de tempo de meia-noite que vai cair antes do timestamp detoday()
Dennis Decoene
3
@DennisDecoene: por que usar em datetime.datetime.today()vez de datetime.date.today(), quando se quer um datetime.dateobjeto?
tzot 29/03
@ tzot Sim, também era isso que eu queria destacar, mas não estava claro.
Dennis Decoene
45
Você pode converter um objeto datetime em uma data com o método date () do objeto date time, da seguinte maneira:
import time
import datetime
# use mktime to step by one day# end - the last day, numdays - count of days to step backdef 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 dayreturn xrange(start, end,86400)# if you need reverse the list of datesfor dt in reversed(gen_dates_list(datetime.datetime.today(),100)):print datetime.datetime.fromtimestamp(dt).date()
Você quis postar esta resposta aqui? Parece-me que sua resposta é direcionada para uma pergunta diferente.
Todos os trabalhadores são essenciais
2
você pode inserir este formulário de código para (data atual e nomes do dia e hora) :
datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')
'19 -09-09 Seg 17:37:56 '
e insira este código para ( data de hoje simplesmente) :
datetime.date.today().strftime('%y-%m-%d')
'19 -09-10 '
para 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.datetime.now()
, observe que existe um métododatetime.date.today()
.from datetime import datetime
você pode simplesmente adicionar a datafrom datetime import datetime, date
Respostas:
Use o
date()
método:fonte
datetime.datetime.utcnow()
e, correspondentementedatetime.datetime.utcnow().date()
datetime.datetime.now(pytz.timezone('US/Pacific')).date()
A partir da documentação:
fonte
Você usa o
datetime.datetime.date()
método:Obviamente, a expressão acima pode (e deve IMHO :) ser escrita como:
fonte
.today()
) é a mais pitônica para a pergunta de exemplo declarada.today()
tem um componente de hora também. por isso, se você faz:losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')
e, em seguida,if losdat < datetime.datetime.today():
será sempre verdade, porquelosdat
terá um componente de tempo de meia-noite que vai cair antes do timestamp detoday()
datetime.datetime.today()
vez dedatetime.date.today()
, quando se quer umdatetime.date
objeto?Você pode converter um objeto datetime em uma data com o método date () do objeto date time, da seguinte maneira:
fonte
fonte
você pode inserir este formulário de código para (data atual e nomes do dia e hora) :
datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')
'19 -09-09 Seg 17:37:56 '
e insira este código para ( data de hoje simplesmente) :
datetime.date.today().strftime('%y-%m-%d')
'19 -09-10 'para 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()
fonte
datetime.date
objeto, e não a string, questrftime
retornaria (ref: docs.python.org/3/library/datetime.html#datetime.date.strftime ).