【发布时间】:2015-02-21 04:55:37
【问题描述】:
我正在尝试使用 datetime.time 对象在 python 中指定一组时区感知时间。但是,pytz 库似乎不太支持这一点:使用 US/Pacific 返回一个奇数时区,与 UTC 相差 53 分钟
>>> datetime.time(10, 52, tzinfo=pytz.timezone("US/Pacific"))
datetime.time(10, 52, tzinfo=<DstTzInfo 'US/Pacific' LMT-1 day, 16:07:00 STD>)
执行此操作的支持方法似乎是对 datetime.datetime 对象使用 datetime.localize,但 datetime.time 对象不支持此方法
>>> pytz.timezone("US/Pacific").localize(datetime.datetime(2011, 6, 27, 2, 0, 0))
datetime.datetime(2011, 6, 27, 2, 0, tzinfo=<DstTzInfo 'US/Pacific' PDT-1 day, 17:00:00 DST>)
>>> pytz.timezone("US/Pacific").localize(datetime.time(10, 45))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/bar/.virtualenvs/foo/lib/python2.7/site-packages/pytz/tzinfo.py", line 309, in localize
loc_dt = dt + delta
TypeError: unsupported operand type(s) for +: 'datetime.time' and 'datetime.timedelta'
【问题讨论】:
-
如果您没有与时间关联的日期,那么无论您使用 哪个 类,您都会遇到夏令时问题。
-
正是这在另一个问题中也没有答案。