pytz tzname的奇怪问题

mcvgt66p  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(276)

当我在使用时区代码时,我注意到了这种模糊性。当尝试获取亚洲/新加坡的tzname时,我会获取utc偏移量。如果我对亚洲/加尔各答也这样做,我会得到正确的时区名称-ist。

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

这种模糊性有什么原因吗?有没有一种解决方法可以给我提供实际的时区代码,即sgt?

kninwzqo

kninwzqo1#

我认为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 . 我试过其他几个时区,似乎他们的名单上没有中士。也许他们在未来的版本中会有,但现在他们只是没有。

相关问题