一尘不染

如何获取系统时区设置并将其传递给pytz.timezone?

python

我们可以使用time.tznameget本地时区名称,但该名称与不兼容pytz.timezone

实际上,返回的名称time.tzname是不明确的。此方法('CST', 'CST')在我的系统中返回,但是“ CST”可以指示四个时区:

  • 中部时区(北美)-在北美中部时区观察
  • 中国标准时间
  • 中原标准时间-台湾现在很少使用“中原标准时间”一词
  • 澳大利亚中央标准时间(ACST)

阅读 243

收藏
2021-01-20

共1个答案

一尘不染

解决此问题的一种非常简单的方法:

import time

def localTzname():
    offsetHour = time.timezone / 3600
    return 'Etc/GMT%+d' % offsetHour

更新 :@MartijnPieters说“这不适用于DST /夏季。” 那么这个版本呢?

import time

def localTzname():
    if time.daylight:
        offsetHour = time.altzone / 3600
    else:
        offsetHour = time.timezone / 3600
    return 'Etc/GMT%+d' % offsetHour
2021-01-20