簡體   English   中英

通過 Python,當系統時鍾是 UTC 時,根據 DST 調整本地時間? 必須使用時間模塊而不是日期時間

[英]Via Python, get local time adjusted for DST, when system clock is UTC? Must use time module not datetime

通過 Python,當系統時鍾是 UTC 時,根據 DST 調整本地時間? 必須使用時間模塊而不是日期時間。

使用 time.localtime() 返回 UTC 而不是本地時間。 那么當系統時鍾為UTC時,如何在python中使用time模塊來獲得DST調整后的本地時間?

我假設“系統時間為 UTC”是指“環境未配置為使用時區”。 您可以從 Python 手動設置時區。 bash示例)

import os
import time

os.environ['TZ'] = 'Asia/Tokyo'
time.tzset()
print(time.localtime())
# => time.struct_time(tm_year=2021, tm_mon=7, tm_mday=16, tm_hour=9, tm_min=42, tm_sec=58, tm_wday=4, tm_yday=197, tm_isdst=0)

os.environ['TZ'] = 'US/Alaska'
time.tzset()
print(time.localtime())
# => time.struct_time(tm_year=2021, tm_mon=7, tm_mday=15, tm_hour=16, tm_min=42, tm_sec=58, tm_wday=3, tm_yday=196, tm_isdst=1)

如果您的環境有限,您可能沒有/usr/share/zoneinfo的時區信息文件。 您可以復制您需要的文件(例如/usr/share/zoneinfo/Asia/Tokyo ),或者您可以手動定義您的TZ 有關更多詳細信息,請參閱time.tzset()

顯然,您也可以在啟動程序之前設置TZ環境變量,在這種情況下,導入os將是不必要的:

TZ=Asia/Tokyo python ....
TZ=US/Alaska python ....

或者

export TZ=Asia/Tokyo
python ...

export TZ=US/Alaska
python ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM