在Python中确定时区

时间:2010-08-22 04:27:25

标签: python timezone

给定本地时间戳和UTC时间戳,是否可以确定时区以及DST是否生效?

2 个答案:

答案 0 :(得分:2)

如果你的“UTC时间戳”是一个浮点数(int就足够了)“纪元的秒数​​”,你的“本地时间戳”是一些奇怪的版本转移到你当地的时间坐标(没有“纪元”除了UTC之外),标准Python库中的模块time就足够了。

正如这些文档显示的那样,给定“从纪元开始的秒数”,gmtime将其转换为UTC中的9项元组,localtime转换为当地时间的9项元组;反过来,calendar.timegm(UTC 9项元组到UTC时间戳)和mktime(本地时间9项元组到UTC时间戳)。你会注意到没有“本地时间戳”(只有当地时间9项元组又名struct_time个实例),因为没有这样的概念。

但是,如果我理解正确的“本地时间戳”是什么意思,那么将它转换为结构时间“好像”它是一个真正的时间戳,然后回到当地时间,将给出你寻找的偏移量(在秒)。至于DST,有点说明它是否是我们提到的元组的第9项。

例如,仅使用“本地时间戳”:

>>> loct
1282453595
>>> time.mktime(time.gmtime(loct)) - loct
28800.0
>>> _ / 3600
8.0
>>> 

这说我在UTC以西8小时。和

>>> time.localtime(loct)[-1]
1

这表示 且DST生效。

答案 1 :(得分:0)

试试看看    http://docs.python.org/library/datetime.html#datetime.datetime 用于内置支持日期,时间和时区。

如果您需要更强大的图书馆,请查看以下建议:Full-featured date and time library