我遇到了以下代码:
datetime.datetime.utcnow().replace(tzinfo=tzutc())
我无法看到replace()调用正在做什么,从阅读它似乎将其转换为UTC时间戳的文档 - 但肯定utcnow()将返回UTC时间戳。
答案 0 :(得分:2)
datetime.datetime.utcnow()
# returns datetime.datetime(2013, 4, 4, 10, 39, 1, 303329)
为您提供UTC中的当前日期时间,但不包含tzinfo
信息:
.replace(tzinfo=tzutc())
# returns datetime.datetime(2013, 4, 4, 10, 39, 1, 303329, tzinfo=<UTC>)
将此tzinfo信息添加到datetime对象。
您可以使用以下方式获取相同的内容(UTC与UTC tzinfo的当前日期时间):
datetime.datetime.now(pytz.utc)
# returns datetime.datetime(2013, 4, 4, 10, 39, 1, 303329, tzinfo=<UTC>)
答案 1 :(得分:0)
这只是调用datetime.replace()
,在该文档页面上提到了很多这种特殊用法。
这是有用的,因为datetime.datetime.utcnow()
返回没有时区信息的datetime
(tzinfo
将是None
):replace()
调用用于更改它。