2013-04-04 99 views
1

我所遇到下面的代码:utc在utc时间戳记上做了什么?

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

我什么也看不见替换()调用是干什么的,从阅读似乎把它转换成一个UTC时间戳的文件 - 但肯定utcnow()会返回一个UTC时间戳。

回答

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 tzinfo UTC当前日期时间):

datetime.datetime.now(pytz.utc) 
# returns datetime.datetime(2013, 4, 4, 10, 39, 1, 303329, tzinfo=<UTC>) 
0

这只是调用datetime.replace(),这个特定的用法在该文档页面上提到很多。

这是有用的,因为datetime.datetime.utcnow()返回datetime没有时区信息(tzinfoNone):在replace()调用来改变这种状况。