我想从Python获取我的系统的默认时区(PST)。 最好的方法是什么? 我想避免分支另一个过程。
这应该工作:
import time
time.tzname
time.tzname返回两个字符串的元组:第一个是本地非DST时区的名称,第二个是本地DST时区的名称。
返回示例:('MST', 'MDT')
要进一步使用此功能,您可以使用time.tzname[time.daylight]获取当前时区的名称,以计算夏令时。
同样,'time.daylight'并不表示DST处于活动状态。它仅表示时区是否观察到DST。您正在寻找'time.localtime()。tm_isdst'。
只是为Windows用户添加时区的值是在`HKEY_LOCAL_MACHINE SOFTWARE Microsoft Windows NT CurrentVersion Time Zones中定义的。
如果本地时区过去有不同的缩写(Python使用1月,7月的值或当前(导入/ tzset()时间)值),则time.tzname可能返回错误的值。 tzlocal模块可用于获取给定日期的正确tzname。
有没有办法得到这个名字?像亚洲/德黑兰?
给出了像ThomasH的回答中的UTC偏移,但考虑了夏令时。
>>> import time
>>> offset = time.timezone if (time.localtime().tm_isdst == 0) else time.altzone
>>> offset / 60 / 60 * -1
-9