簡體   English   中英

Python 中給定時區的標准 UTC 偏移量(無 DST)

[英]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.

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