我的UTC-8时区的datetime.datetime.now()
输出。我想将其转换为适当的时间戳,其tzinfo为UTC。
from datetime import datetime, tzinfo
x = datetime.now()
x = x.replace(tzinfo=UTC)
^输出NameError:未定义名称“UTC”
x.replace(tzinfo=<UTC>)
输出SyntaxError:无效语法
x.replace(tzinfo='UTC')
输出TypeError:tzinfo参数必须是None或tzinfo子类,而不是'str'
用于完成示例的正确语法是什么?
答案 0 :(得分:9)
您需要使用其他库,例如pytz
。 Python的datetime
模块不包含任何tzinfo
类,包括UTC,当然也不包括您当地的时区。
修改:自Python 3.2起,datetime
模块包含timezone
个对象,其中包含utc
成员。获取当前UTC时间的规范方法现在是:
from datetime import datetime, timezone
x = datetime.now(timezone.utc)
对于其他时区,您仍然需要其他库,例如pytz
。
答案 1 :(得分:3)
如果您要查找的所有内容都是现在的UTC时间,则datetime内置了该内容:
x = datetime.utcnow()
不幸的是,它不包含任何tzinfo,但它确实为您提供了UTC时间。
或者如果你确实需要tzinfo,你可以这样做:
from datetime import datetime
import pytz
x = datetime.now(tz=pytz.timezone('UTC'))
您可能还对时区列表感兴趣:Python - Pytz - List of Timezones?