给定 UTC 时间戳和 UTC 偏移量,是不是可以在 Python 中获取时区?
Posted
技术标签:
【中文标题】给定 UTC 时间戳和 UTC 偏移量,是不是可以在 Python 中获取时区?【英文标题】:Is it possible to get a timezone in Python given a UTC timestamp and a UTC offset?给定 UTC 时间戳和 UTC 偏移量,是否可以在 Python 中获取时区? 【发布时间】:2010-10-17 06:34:10 【问题描述】:我有 UTC 偏移量和 UTC 时间的数据。鉴于此,是否有可能在 Python 中获取用户的本地时区(主要是为了确定是否是 DST 等可能使用 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
这是正确的,只是现在是 PDT,所以应该是:
2009-04-02 18:04:41.712413
我想我需要获取在 pytz 中使用的时区来确定它是否是夏令时?
【问题讨论】:
相关:pytz: return Olson Timezone name from only a GMT Offset 【参考方案1】:没有。时区太复杂,距离 UTC X 小时的时区太多。
http://en.wikipedia.org/wiki/List_of_time_zones
例如,来自 UTC 的 -5 可能是加拿大、纽约、古巴、牙买加、厄瓜多尔等。
赤道地区可能不使用 DST,因为它们的一天大约一年有 12 小时。南美的,如果他们使用某种形式的 DST,可能与北美的时间表相反,因为他们的夏季/冬季(即短日/长日)的时间表也相反。
【讨论】:
【参考方案2】:没有。 http://en.wikipedia.org/wiki/List_of_U.S._states_by_time_zone
【讨论】:
【参考方案3】:由于一般来说,对于给定的时区偏移量,可能存在多个时区,因此一般的答案是“不,不是没有更多信息”。更多信息通常是时间适用的位置 - 哪个国家、哪个州或哪个城市。
【讨论】:
时区边界或多或少是随机的。从技术上讲,它们在美国是逐县的,并且不必遵循州界。此外,夏令时因地区而异——特别是在亚利桑那州和印第安纳州,其他州也可能有复杂的规定。以上是关于给定 UTC 时间戳和 UTC 偏移量,是不是可以在 Python 中获取时区?的主要内容,如果未能解决你的问题,请参考以下文章
Python 中给定 TimeZone 的标准 UTC 偏移量(无 DST)