我缺少什么,如何让这个功能发挥作用?
import dateutil.parser
import datetime
my_date = datetime.datetime(2000, 1, 1, 0, 0, 0, 000000, tzinfo=tzutc())
print(my_date)
给我错误:
NameError: name 'tzutc' is not defined
您没有导入它:
from dateutil.tz import tzutc
可以使用标准库传递 UTC 等时区信息,而不是第三方库对象
tzutc
。
您可以专门使用
datetime.UTC
来表示 UTC。
from datetime import datetime, UTC
my_date = datetime(2000, 1, 1, 0, 0, 0, tzinfo=UTC)
您可以验证
datetime(2000, 1, 1, 0, 0, 0, tzinfo=tzutc()) == my_date
确实是True。
您也可以使用
zoneinfo.ZoneInfo
。只需将时区作为字符串(例如“UTC”)传递即可初始化 IANA 时区。您可以使用其名称设置各种其他时区(它使用 tzdata
来查找名称);您可以通过 zoneinfo.available_timezones()
查看所有可能的名称。
from datetime import datetime
from zoneinfo import ZoneInfo
my_date_1 = datetime(2000, 1, 1, 0, 0, 0, tzinfo=ZoneInfo("UTC"))
再次,您可以验证
datetime(2000, 1, 1, 0, 0, 0, tzinfo=tzutc()) == my_date_1
是否为 True。
在旧版本的Python中,您可以通过
datetime.timezone
设置UTC:
from datetime import datetime, timezone, timedelta
my_date_2 = datetime(2000, 1, 1, 0, 0, 0, tzinfo=timezone.utc)
my_date_3 = datetime(2000, 1, 1, 0, 0, 0, tzinfo=timezone(timedelta(0)))