pytz tzname 的奇怪问题
Posted
技术标签:
【中文标题】pytz tzname 的奇怪问题【英文标题】:Weird issue with pytz 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?
【问题讨论】:
这能回答你的问题吗? How to use abbreviated timezone name(PST, IST) in 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。也许他们会在未来的版本中拥有它,但现在他们只是没有。
【讨论】:
以上是关于pytz tzname 的奇怪问题的主要内容,如果未能解决你的问题,请参考以下文章
pytz 和 datetime 奇怪的行为 - 可能的错误?
pytz.timezone 显示亚洲/加尔各答的奇怪结果? [复制]
pytz.timezone 显示亚洲/加尔各答的奇怪结果? [复制]