2012-07-05 76 views
5

datetime.datetime.now()的输出在UTC-8的本地时区输出。我想用UTC的tzinfo将其转换为适当的时间戳。NameError:名称'UTC'未定义

from datetime import datetime, tzinfo 
x = datetime.now() 
x = x.replace(tzinfo=UTC) 

^输出NameError:未定义名称 'UTC'

x.replace(tzinfo=<UTC>)输出语法错误:无效的语法

x.replace(tzinfo='UTC')输出类型错误:tzinfo参数必须是无或一个tzinfo子类,而不是输入' str'

什么是正确的语法来完成我的例子?

+1

Python的标准库不包含任何tzinfo类,包括UTC。该文档确实包含了创建一个的说明。 – 2012-07-05 23:00:20

回答

8

您需要使用其他库,例如pytz。 Python的datetime模块不包括任何tzinfo类,包括UTC,当然不是您的本地时区。

+1

+1这些电池不包括:( – 2012-07-05 23:13:04

+1

谢谢!对于那些好奇,结束了使用'x.replace(tzinfo = pytz.utc)+ timedelta(小时= 8)' – 2012-07-05 23:14:24

3

如果你正在寻找的是现在时间在UTC,日期时间有一个内置:

x = datetime.utcnow() 

不幸的是,不包括任何tzinfo,但它确实给你UTC时间。

另外,如果你需要,你可以做到这一点的tzinfo:

from datetime import datetime 
import pytz 
x = datetime.now(tz=pytz.timezone('UTC')) 

您还可能有兴趣在时区列表:Python - Pytz - List of Timezones?