根据 timeanddate.com,目前芝加哥比 UTC 晚 5 小时。但是,我的 Python 应用程序有不同的想法:
import datetime
import pytz
local_tz = pytz.timezone('America/Chicago')
local_time = datetime.datetime(2015, 8, 6, 0, 0, tzinfo=local_tz)
utc_time = local_time.astimezone(pytz.utc)
print(local_time)
print(utc_time)
2015-08-06 00:00:00-05:51
2015-08-06 05:51:00+00:00
“美国/芝加哥”和“美国/中部”得到的结果相同。为什么偏移量是 -05:51 而不是 -05:00?
最佳答案
pytz
timezone objects 需要在使用前用特定时间初始化,并使用 tzinfo=
参数创建 datetime
不允许这样做。您必须使用 pytz
对象的 localize
方法将时区添加到 datetime
。
>>> local_tz = pytz.timezone('America/Chicago')
>>> local_time = local_tz.localize(datetime.datetime(2015, 8, 6, 0, 0))
>>> print local_time
2015-08-06 00:00:00-05:00
>>> utc_time = local_time.astimezone(pytz.utc)
>>> print utc_time
2015-08-06 05:00:00+00:00
关于python - 我从本地时间转换为 UTC 有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31864684/