чтобы быть справедливым, этот ответ (использование .today()) является наиболее питонным для заявленного примера вопроса.
Даннид
2
Если вы используете сегодня, будьте осторожны при сравнении даты. today()имеет часовой компонент тоже. так что если вы сделаете: losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')и тогда if losdat < datetime.datetime.today():это будет всегда верно, потому что losdatбудет иметь компонент времени полуночи, который упадет до отметки времениtoday()
Деннис Декен
3
@DennisDecoene: зачем использовать datetime.datetime.today()вместо datetime.date.today(), когда кто-то хочет datetime.dateобъект?
tzot
@tzot Да, это было также то, на что я хотел указать, но было неясно.
Деннис Декоен
45
Вы можете преобразовать объект datetime в дату с помощью метода date () объекта date time следующим образом:
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()
Вы хотели опубликовать этот ответ здесь? Мне кажется, что ваш ответ направлен на другой вопрос.
Все работники необходимы
2
Вы можете ввести эту форму кода для (сегодняшняя дата и названия дня и часа) :
datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')
'19 -09-09 Пн 17:37:56 '
и введите этот код для ( сегодня просто дата) :
datetime.date.today().strftime('%y-%m-%d')
'19 -09-10 '
для объекта: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()
, обратите внимание, что есть методdatetime.date.today()
.from datetime import datetime
дату и время, например, вы можете просто добавить датуfrom datetime import datetime, date
Ответы:
Используйте
date()
метод:источник
datetime.datetime.utcnow()
и, соответственно,datetime.datetime.utcnow().date()
datetime.datetime.now(pytz.timezone('US/Pacific')).date()
Из документации:
источник
Вы используете
datetime.datetime.date()
метод:Очевидно, что вышеприведенное выражение может (и должно ИМХО :) быть записано как:
источник
.today()
) является наиболее питонным для заявленного примера вопроса.today()
имеет часовой компонент тоже. так что если вы сделаете:losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')
и тогдаif losdat < datetime.datetime.today():
это будет всегда верно, потому чтоlosdat
будет иметь компонент времени полуночи, который упадет до отметки времениtoday()
datetime.datetime.today()
вместоdatetime.date.today()
, когда кто-то хочетdatetime.date
объект?Вы можете преобразовать объект datetime в дату с помощью метода date () объекта date time следующим образом:
источник
источник
Вы можете ввести эту форму кода для (сегодняшняя дата и названия дня и часа) :
datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')
'19 -09-09 Пн 17:37:56 '
и введите этот код для ( сегодня просто дата) :
datetime.date.today().strftime('%y-%m-%d')
'19 -09-10 'для объекта:
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
объект, а не строку, котораяstrftime
бы возвращала (ref: docs.python.org/3/library/datetime.html#datetime.date.strftime ).