Si vous en avez juste besoin datetime.datetime.now(), veuillez noter qu'il existe une méthode datetime.date.today().
Thierry J.
si vous avez déjà importé datetime, par exemple, from datetime import datetimevous pouvez simplement ajouter une datefrom datetime import datetime, date
pour être juste, cette réponse (en utilisant .today()) est la plus pythonique pour l'exemple de question indiqué.
Dannid
2
Si vous utilisez aujourd'hui, soyez prudent lorsque vous comparez une date. today()a aussi une composante horaire . donc si vous le faites: losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')et alors if losdat < datetime.datetime.today():ce sera toujours vrai car losdataura une composante horaire de minuit qui tombera avant l'horodatage detoday()
Dennis Decoene
3
@DennisDecoene: pourquoi utiliser datetime.datetime.today()au lieu de datetime.date.today(), quand on veut un datetime.dateobjet?
tzot
@tzot Oui, c'est aussi ce que je voulais souligner, mais ce n'était pas clair.
Dennis Decoene
45
Vous pouvez convertir un objet datetime en date avec la méthode date () de l'objet date time, comme suit:
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()
Vouliez-vous publier cette réponse ici? Il me semble que votre réponse est dirigée vers une autre question.
Tous les travailleurs sont essentiels
2
vous pouvez entrer ce formulaire de code pour (date d'aujourd'hui et noms du jour et de l'heure) :
datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')
'19 -09-09 lun 17:37:56 '
et entrez ce code pour ( date d'aujourd'hui simplement) :
datetime.date.today().strftime('%y-%m-%d')
'19 -09-10 '
pour objet: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()
, veuillez noter qu'il existe une méthodedatetime.date.today()
.from datetime import datetime
vous pouvez simplement ajouter une datefrom datetime import datetime, date
Réponses:
Utilisez la
date()
méthode:la source
datetime.datetime.utcnow()
et en conséquencedatetime.datetime.utcnow().date()
datetime.datetime.now(pytz.timezone('US/Pacific')).date()
De la documentation:
la source
Vous utilisez la
datetime.datetime.date()
méthode:De toute évidence, l'expression ci-dessus peut (et devrait à mon humble avis :) être écrite comme suit:
la source
.today()
) est la plus pythonique pour l'exemple de question indiqué.today()
a aussi une composante horaire . donc si vous le faites:losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')
et alorsif losdat < datetime.datetime.today():
ce sera toujours vrai carlosdat
aura une composante horaire de minuit qui tombera avant l'horodatage detoday()
datetime.datetime.today()
au lieu dedatetime.date.today()
, quand on veut undatetime.date
objet?Vous pouvez convertir un objet datetime en date avec la méthode date () de l'objet date time, comme suit:
la source
la source
vous pouvez entrer ce formulaire de code pour (date d'aujourd'hui et noms du jour et de l'heure) :
datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')
'19 -09-09 lun 17:37:56 '
et entrez ce code pour ( date d'aujourd'hui simplement) :
datetime.date.today().strftime('%y-%m-%d')
'19 -09-10 'pour objet:
datetime.datetime.now().date()
datetime.datetime.today().date()
datetime.datetime.utcnow().date()
datetime.datetime.today().time()
datetime.datetime.utcnow().date()
datetime.datetime.utcnow().time()
la source
datetime.date
objet, et non une chaîne, quistrftime
retournerait (réf: docs.python.org/3/library/datetime.html#datetime.date.strftime ).