当我注意到这种模棱两可时,我正在使用一些时区代码。在尝试获取亚洲/新加坡的tzname时,我得到了UTC偏移量。如果我对亚洲/加尔各答执行相同的操作,我会得到正确的时区名称- IST。
pytz.timezone('Asia/Singapore').tzname(datetime.now())
'+08'pytz.timezone('Asia/Kolkata').tzname(datetime.now())
'IST'这种模棱两可是有原因的吗?有没有一种解决办法可以给我提供实际的时区代码,即SGT?
发布于 2021-07-09 02:21:26
我不认为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。也许他们会在未来的版本中拥有它,但现在他们就是没有。
https://stackoverflow.com/questions/68306549
复制相似问题