我遇到了以下代码:
datetime.datetime.utcnow().replace(tzinfo=tzutc())
我看不到 replace() 调用在做什么,从阅读文档看来它似乎将其转换为 UTC 时间戳 - 但肯定 utcnow() 会返回一个 UTC 时间戳。
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>)
这只是调用datetime.replace()
,该文档页面上经常提到这种特殊用法。
它很有用,因为datetime.datetime.utcnow()
返回 datetime
没有时区信息(tzinfo
will be None
):replace()
调用用于更改它。