【问题标题】:pytz adding extra minutespytz 增加额外的时间
【发布时间】:2020-09-30 14:52:18
【问题描述】:
US/Mountain 和 AZ 时区有什么区别。为什么要增加额外的 28 分钟?
>>> strtime = datetime.datetime.strptime('10:00pm', '%I:%M%p')
>>> tz = timezone('US/Mountain').localize(strtime)
>>> print tz
1900-01-01 22:00:00-07:00
>>> tz = timezone(us.states.lookup('AZ').capital_tz).localize(strtime)
>>> print tz
1900-01-01 22:00:00-07:28 <<-----
【问题讨论】:
标签:
datetime
timezone
pytz
【解决方案1】:
这很可能是因为您的年份是 1900 年(另请参阅this 问题);如果您添加当前年份,它可以正常工作:
import datetime
from pytz import timezone
import us
strtime = datetime.datetime.strptime('2020 10:00pm', '%Y %I:%M%p')
tz = timezone('US/Mountain').localize(strtime)
print(tz)
# 2020-01-01 22:00:00-07:00
tz = timezone(us.states.lookup('AZ').capital_tz).localize(strtime)
print(tz)
# 2020-01-01 22:00:00-07:00
(我使用的是 Python3,但这应该没什么区别,我得到了 1900 年相同的 28 分钟偏移)