3

pytz要求您使用该.astimezone方法进行与 UTC 的所有时间转换。然而,在一种特殊情况下——datetime.fromtimestamp看起来你应该能够使用 Python 库的 datetime 方法。

它似乎在这里工作:

>>> import datetime
>>> import pytz
>>> ambigtime = 1352017800  # http://www.wolframalpha.com/input/?i=1352017800+unix+time+in+Los+Angeles
>>> amla = pytz.timezone('America/Los_Angeles')
>>> datetime.datetime.fromtimestamp(ambigtime, tz=amla)
datetime.datetime(2012, 11, 4, 1, 30, tzinfo=<DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>)
>>> datetime.datetime.fromtimestamp(ambigtime + 3600, tz=amla)
datetime.datetime(2012, 11, 4, 1, 30, tzinfo=<DstTzInfo 'America/Los_Angeles' PST-1 day, 16:00:00 STD>)

是否存在时区datetime.fromtimestamp无法为您提供正确结果的情况pytz

4

1 回答 1

1

据我所知,pytz.timezone()会给你一个tzinfo的实例(或者更确切地说是它的一个子类),因此完全可以与datetime.fromtimestamp().

只要pytz更新了 zoneinfo 文件,您就可以使用该方法创建本地化日期时间。但是,使用该方法在两个区域之间转换日期时间确实更容易astimezone()。如果我是正确的,它基本上会tzinfo在日期时间上切换属性。

于 2012-08-21T13:34:31.430 回答