Відповіді:
Використовуйте date()
метод:
datetime.datetime.now().date()
datetime.datetime.utcnow()
і відповідноdatetime.datetime.utcnow().date()
datetime.datetime.now(pytz.timezone('US/Pacific')).date()
З документації:
Об'єкт дати повернення з тим же роком, місяцем та днем.
Ви використовуєте datetime.datetime.date()
метод:
datetime.datetime.now().date()
Очевидно, що вираз вище може (і чи слід IMHO :) записати так:
datetime.date.today()
.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 () об'єкта time date, як описано нижче:
<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()
ви можете ввести цю кодову форму для (сьогоднішня дата та назви дня та години) :
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.strearch ).
datetime.datetime.now()
, зауважте, що існує методdatetime.date.today()
.