我正在将日期时间转换为另一个时区(从欧洲/巴黎到美国/瓜德罗普)。但结果不是我所期望的:
import pytz
import datetime
tzinfo = pytz.timezone('Europe/Paris')
datetime_with_timezone = datetime.datetime(
2000, 1, 1, 0, 0, 0, tzinfo=tzinfo
)
print(datetime_with_timezone)
new_tzinfo = pytz.timezone('America/Guadeloupe')
print(datetime_with_timezone.astimezone(new_tzinfo))
生产:
2000-01-01 00:00:00+00:09
1999-12-31 19:51:00-04:00
为什么datetime_with_timezone
包含+00:09
这似乎是一个已知的问题,根据pytz文档:
不幸的是,使用标准日期时间构造函数的tzinfo参数对pytz在许多时区"不起作用"。
文档提供了进一步的建议
处理时间的首选方法是始终使用UTC,只有在生成供人类阅读的输出时才转换为本地时间。