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
廣告