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 的值。如果前面带有“-”,则时区位于本初子午线以东;否则,位于以西。如果dst后面没有偏移量,则假设夏令时比标准时间提前一小时。

  • start[/time], end[/time] − 指示何时切换到和从夏令时切换回来。start 和 end 日期格式如下之一:

    • Jn − 第 n 个儒略日 (1 <= n <= 365)。闰日不计算在内,因此在所有年份中,2 月 28 日是第 59 天,3 月 1 日是第 60 天。

    • n − 基于零的儒略日 (0 <= n <= 365)。闰日计算在内,可以参考 2 月 29 日。

    • Mm.n.d − 年份 m 的第 n 周(1 <= n <= 5,1 <= m <= 12)中的第 d 天 (0 <= d <= 6),其中第 5 周表示“月份 m 中的最后一天 d”,这可能出现在第四周或第五周。第 1 周是出现第 d 天的第一周。第 0 天是星期日。

    • time − 此格式与 offset 相同,但不允许前导符号(“-”或“+”)。如果没有给出 time,则默认为 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)
python_date_time.htm
广告