当我在使用时区代码时,我注意到了这种模糊性。当尝试获取亚洲/新加坡的tzname时,我会获取utc偏移量。如果我对亚洲/加尔各答也这样做,我会得到正确的时区名称-ist。
pytz.timezone('Asia/Singapore').tzname(datetime.now()) '+08'
pytz.timezone('Asia/Kolkata').tzname(datetime.now()) 'IST'
这种模糊性有什么原因吗?有没有一种解决方法可以给我提供实际的时区代码,即sgt?
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适用于其他区域,如:
+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 . 我试过其他几个时区,似乎他们的名单上没有中士。也许他们在未来的版本中会有,但现在他们只是没有。
PDT
1条答案
按热度按时间kninwzqo1#
我认为pytz在时区缩写列表中没有“sgt”。我有以下代码:
它给了我输出
+08
. bu适用于其他区域,如:它给了我
PDT
. 我试过其他几个时区,似乎他们的名单上没有中士。也许他们在未来的版本中会有,但现在他们只是没有。