在Python中,是否可以根据UTC时间戳和UTC偏移量获取时区?

3

我有一些数据,包括UTC偏移量和UTC时间。在Python中,是否可以获取用户的本地时区(主要是为了确定是否为夏令时等,可能使用pytz),类似于PHP中的timezone_name_from_abbr函数?

例如:

如果我的纪元时间是1238720309, 我可以得到UTC时间:

>>> d = datetime.utcfromtimestamp(1238720309)
>>> print d + dt.timedelta(0,-28800) #offset for pacific I think
2009-04-02 17:04:41.712143 

除了现在应该是太平洋夏令时,所以正确的写法应该是:

2009-04-02 18:04:41.712413

我需要获取时区以在pytz中使用,以确定是否为夏令时?


3个回答

5

通常情况下,同一时区偏移量可能对应多个时区,因此一般的答案是“不行,需要更多的信息”。这些更多的信息通常包括时间所适用的地点 - 国家、州或城市。


时区边界基本上是随意的。在美国,它们从技术上讲是按县划分的,并且不必遵循州边界。此外,夏令时因地区而异,尤其是在亚利桑那州和印第安纳州,其他州也可能有复杂的规定。 - S.Lott

1

不行。时区太复杂了,有太多的时区与UTC相差X小时。

http://en.wikipedia.org/wiki/List_of_time_zones

例如,UTC-5可能是加拿大、纽约、古巴、牙买加、厄瓜多尔等地。
赤道地区可能不使用夏令时,因为它们的白天大约为一年的12个小时。如果南美洲地区使用某种形式的夏令时,则它们的夏季/冬季(即短日子/长日子)时间表与北美洲地区相反。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接