Python 名称错误:名称';UTC';没有定义

Python 名称错误:名称';UTC';没有定义,python,datetime,Python,Datetime,datetime.datetime.now()的输出以我的本地时区UTC-8输出。我想把它转换成一个带有UTC tzinfo的适当时间戳 from datetime import datetime, tzinfo x = datetime.now() x = x.replace(tzinfo=UTC) ^输出名称错误:未定义名称“UTC” x.replace(tzinfo=)输出语法错误:无效语法 x.replace(tzinfo='UTC')输出类型错误:tzinfo参数必须为None或tz

datetime.datetime.now()的输出以我的本地时区UTC-8输出。我想把它转换成一个带有UTC tzinfo的适当时间戳

from datetime import datetime, tzinfo
x = datetime.now()
x = x.replace(tzinfo=UTC)
^输出名称错误:未定义名称“UTC”

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

x.replace(tzinfo='UTC')
输出类型错误:tzinfo参数必须为None或tzinfo子类,而不是类型“str”


要完成我的示例,正确的语法是什么?

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

编辑:从
datetime
模块开始,包含一个带有
utc
成员的
timezone
对象。获取当前UTC时间的标准方法是:

from datetime import datetime, timezone
x = datetime.now(timezone.utc)

对于其他时区,您仍然需要另一个库,例如
pytz

如果您要查找的是现在UTC的时间,datetime有一个内置的:

x = datetime.utcnow()
不幸的是,它没有包含任何tzinfo,但它确实提供了UTC时间

或者,如果您确实需要tzinfo,可以执行以下操作:

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

您可能还对时区列表感兴趣:

Python的标准库不包括任何tzinfo类,包括UTC。文档中确实包含了创建一个的说明。谢谢!对于那些好奇的人,最终使用了
x.replace(tzinfo=pytz.utc)+timedelta(小时数=8)