[英]Standard UTC offset (Without DST) for a give TimeZone in Python
我有一個要求,我需要根據標准 UTC 偏移量(無 DST)對多個時區代碼進行分組,例如 - 標准 UTC 偏移值介於 4 和 6 之間的所有時區將成為一組的一部分,如此等等。
如何使用時區代碼獲取時區的標准 UTC 偏移量?
我嘗試了以下方法,但它給了我 DST 的偏移量。
pytz.timezone('Asia/Jerusalem').localize(datetime.datetime(2011,1,1)).strftime('%z')
您可以使用.dst()
方法; 它為您提供 DST 的 timedelta。 如果從.utcoffset()
減去,您將獲得時區的“標准”UTC 偏移量。
from datetime import datetime
from zoneinfo import ZoneInfo
dt_woDST = datetime(2011,1,1, tzinfo=ZoneInfo('Asia/Jerusalem'))
# 2011-01-01 00:00:00+02:00
dt_DST = datetime(2011,6,1, tzinfo=ZoneInfo('Asia/Jerusalem'))
# 2011-06-01 00:00:00+03:00
utcoff0 = (dt_woDST.utcoffset()-dt_woDST.dst()).total_seconds()
utcoff1 = (dt_DST.utcoffset()-dt_DST.dst()).total_seconds()
print(utcoff0, utcoff0 == utcoff1)
# 7200.0 True
注意:我在這里使用 Python 3.9 的zoneinfo
; 當然,這也適用於您使用pytz
時區對象本地化的日期pytz
對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.