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
时区为您提供正确结果的情况?
答案 0 :(得分:1)
据我所知,pytz.timezone()
将为您提供tzinfo(或更确切地说是其子类)的实例,因此可以与datetime.fromtimestamp()
一起使用。
只要pytz
更新了zoneinfo文件,您就可以使用该方法创建本地化日期时间。然而,在两个区域之间转换日期时间确实更容易使用astimezone()
方法。如果我是正确的,它基本上会在日期时间切换tzinfo
属性。