1

我遇到了以下代码:

datetime.datetime.utcnow().replace(tzinfo=tzutc())

我看不到 replace() 调用在做什么,从阅读文档看来它似乎将其转换为 UTC 时间戳 - 但肯定 utcnow() 会返回一个 UTC 时间戳。

4

2 回答 2

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>)
于 2013-04-04T10:38:28.143 回答
0

这只是调用datetime.replace(),该文档页面上经常提到这种特殊用法。

它很有用,因为datetime.datetime.utcnow()返回 datetime没有时区信息(tzinfowill be None):replace()调用用于更改它。

于 2013-04-04T10:37:07.823 回答