Python 时区:获取缩写和 UTC 偏移量

Python Time zone: get abbreviation and UTC offset

我的时区是“Australia/Melbourne”(当我将它赋予我的函数时,我有多个这样的时区)并且我需要这样的输出 ASET(GMT +10)。我怎样才能找到我的答案?

谢谢

假设您有可用的日期和时间(请参阅我的评论),最简单的方法可能是 strftime:

from datetime import datetime
from dateutil import tz

timezone = tz.gettz("Australia/Melbourne")
dt = datetime.now(timezone)

print(f"{dt.strftime('%Z')}(GMT{dt.strftime('%z')})")
# AEST(GMT+1000)

如果您确实想要获得指定的输出,我想您必须更复杂一些:

total_minutes, seconds = divmod(dt.utcoffset().total_seconds(), 60)
hours, minutes = divmod(total_minutes, 60)
utcoff = f"{int(hours):+d}:{int(minutes):02d}" if minutes else f"{int(hours):+d}"
    
print(f"{dt.strftime('%Z')}(GMT{utcoff})")
# AEST(GMT+10)