Answers:
使用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()
显然,以上表达式可以(并且应该恕我直言:)写成:
datetime.date.today()
.today()
)对于所陈述的示例问题而言是最Python的。
today()
也有一个小时的组成部分。所以,如果你这样做:losdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')
然后if losdat < datetime.datetime.today():
它会永远是正确的,因为losdat
将有午夜的时间部分将的时间戳之前落下today()
datetime.datetime.today()
而不是?datetime.date.today()
datetime.date
您可以使用日期时间对象的date()方法将datetime对象转换为日期,如下所示:
<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 Mon 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
(参考:docs.python.org/3/library/datetime.html#datetime.date.strftime)。
datetime.datetime.now()
,请注意有一种方法datetime.date.today()
。