如何解决pytz tzname 的奇怪问题
当我注意到这种歧义时,我正在处理一些时区代码。在尝试获取亚洲/新加坡的 tzname 时,我得到了 UTC 偏移量。如果我对亚洲/加尔各答也这样做,我会得到正确的时区名称 - IST。
pytz.timezone('Asia/Singapore').tzname(datetime.now())
'+08'
pytz.timezone('Asia/Kolkata').tzname(datetime.now())
'IST'
这种歧义是否有原因,是否有解决方法可以为我提供实际时区代码,即 SGT?
解决方法
我认为 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
。对于其他区域,例如:
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。也许他们会在未来的版本中拥有它,但现在他们只是没有。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。