【问题标题】: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 中使用的时区来确定它是否是夏令时?

【问题讨论】:

标签: python timezone utc dst pytz


【解决方案1】:

没有。时区太复杂,距离 UTC X 小时的时区太多。

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

例如,来自 UTC 的 -5 可能是加拿大、纽约、古巴、牙买加、厄瓜多尔等。

赤道地区可能不使用 DST,因为它们的一天大约一年有 12 小时。南美的,如果他们使用某种形式的 DST,可能与北美的时间表相反,因为他们的夏季/冬季(即短日/长日)的时间表也相反。

【讨论】:

    【解决方案2】:
    【解决方案3】:

    由于一般来说,对于给定的时区偏移量,可能存在多个时区,因此一般的答案是“不,不是没有更多信息”。更多信息通常是时间适用的位置 - 哪个国家、哪个州或哪个城市。

    【讨论】:

    • 时区边界或多或少是随机的。从技术上讲,它们在美国是逐县的,并且不必遵循州界。此外,夏令时因地区而异——特别是在亚利桑那州和印第安纳州,其他州也可能有复杂的规定。
    猜你喜欢
    • 2016-09-05
    • 2018-02-02
    • 2020-10-21
    • 2011-05-01
    • 2014-01-09
    • 1970-01-01
    • 2011-07-29
    • 2016-05-07
    • 2013-10-15
    相关资源
    最近更新 更多