utc替换在utc时间戳上做了什么?

时间:2013-04-04 10:31:10

标签: python datetime timezone

我遇到了以下代码:

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

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

2 个答案:

答案 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()返回没有时区信息的datetimetzinfo将是None):replace()调用用于更改它。