【问题标题】:Weird issue with pytz tznamepytz tzname 的奇怪问题
【发布时间】:2021-09-19 05:03:28
【问题描述】:

当我注意到这种歧义时,我正在使用一些时区代码。在尝试获取亚洲/新加坡的 tzname 时,我得到了 UTC 偏移量。如果我对亚洲/加尔各答做同样的事情,我会得到正确的时区名称 - IST。

pytz.timezone('Asia/Singapore').tzname(datetime.now())
'+08'
pytz.timezone('Asia/Kolkata').tzname(datetime.now())
'IST'

这种含糊不清是否有原因,是否有一种解决方法可以为我提供实际的时区代码,即 SGT?

【问题讨论】:

标签: python pytz


【解决方案1】:

我认为 pytz 在时区缩写列表中没有“SGT”。我有以下代码:

from datetime import datetime as dt
common_name = pytz.timezone('Asia/Singapore')
abbr = common_name.localize(dt.now(), is_dst=None)
print(abbr.tzname())

它给了我输出+08。 Bu 适用于其他区域,例如:

from datetime import datetime as dt
common_name = pytz.timezone("US/Pacific")
abbr = common_name.localize(dt.now(), is_dst=None)
print(abbr.tzname())

它给了我PDT。我尝试了其他几个时区,似乎它们的列表中没有包含 SGT。也许他们会在未来的版本中拥有它,但现在他们只是没有。

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 2015-02-27
    • 2018-06-26
    • 2011-08-13
    • 2011-08-17
    • 2011-02-02
    • 2021-10-10
    • 2014-04-21
    • 2010-12-30
    相关资源
    最近更新 更多