是否存在datetime.fromtimestamp使用pytz返回错误结果的情况



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时区为您提供正确结果的情况?

据我所知,pytz.timezone()将为您提供tzinfo的一个实例(或者更确切地说是它的一个子类),因此与datetime.fromtimestamp()一起使用是完全可以的。

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

最新更新