Python time.tzset() 方法



Python time tzset() 方法重置库例程使用的时间转换规则。环境变量 TZ 指定如何执行此操作。此方法仅在 UNIX 系统中可用。

TZ 环境变量的标准格式为(为清楚起见,添加了空格)-


 std offset [dst [offset [,start[/time], end[/time]]]]
  • std 和 dst − 三个或三个以上的字母数字,给出时区缩写。这些将被传播到 time.tzname 中。
  • offset − 偏移量的形式为 − 。hh[:mm[:ss]].这表示在本地时间中添加的值以达到 UTC。如果前面有 '-',则时区在本初子午线以东;否则,它是 West。如果 dst 后没有偏移量,则假定夏令时比标准时间早一小时。
  • start[/time], end[/time] − 指示何时更改为 DST 和从 DST 返回。开始日期和结束日期的格式为以下格式之一 -
    • Jn − 儒略日 n (1 <= n <= 365)。闰日不计算在内,因此在所有年份中,2 月 28 日是第 59 天,3 月 1 日是第 60 天。
    • n − 从零开始的儒略日 (0 <= n <= 365)。闰日被计算在内,可以参考 2 月 29 日。
    • Mm.n.d − 第 d 天 (0 <= d <= 6) 或一年中第 m 个月的第 n 周 (1 <= n <= 5, 1 <= m <= 12,其中第 5 周表示“第 m 月的最后一天 ”,可能发生在第四周或第五周)。第 1 周是第 d 天出现的第一周。第 0 天是星期日。
    • time − 这与 offset 的格式相同,只是不允许使用前导符号('-' 或 '+')。如果未给出时间,则默认值为 02:00:00。
注意:在不调用 tzset() 方法的情况下更改环境变量可能会影响其他方法(如 localtime())的输出。

语法

以下是 Python time tzset() 方法的语法 -


time.tzset()

参数

该方法不接受任何参数。

返回值

此方法不返回任何值。

以下示例显示了 Python time tzset() 方法的用法。在这里,我们将时区 EST 和 AEDT 设置为环境变量,并重置相对于给定时区的时间转换规则。


import time
import os

os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'
time.tzset()
print(time.strftime('%X %x %Z'))

os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0'
time.tzset()
print(time.strftime('%X %x %Z'))

当我们运行上述程序时,它会产生以下结果——

13:00:40 02/17/09 EST
05:00:40 02/18/09 AEDT

我们将环境设置为 UTC 时间的另一个程序如下所示 -


import time
import os

os.environ['TZ'] = 'UTC'
time.tzset()
print("After reset:", time.strftime('%X %x %Z'))

上述程序的输出显示如下 -

05:25:03 01/12/23 UTC

有时,将 TZ 环境变量设置为包含时区规则信息的数据库文件的路径会更方便。

例如,这里我们将 TZ 环境变量设置为 “Asia/Kolkata” 并使用 tzset() 方法重置它。然后,要查找当前本地时间,我们调用 localtime() 方法。


import time
import os

os.environ['TZ'] = 'Asia/Kolkata'
time.tzset()
print(time.localtime())

输出

time.struct_time(tm_year=2023, tm_mon=1, tm_mday=12, tm_hour=15, tm_min=56, tm_sec=27, tm_wday=3, tm_yday=12, tm_isdst=0)