首页 > 解决方案 > Python时区:获取缩写和UTC偏移量

问题描述

我的时区是“澳大利亚/墨尔本”(当我将它提供给我的函数时,我有多个这样的区域)并且我需要像这样的输出 ASET(GMT +10)。我怎样才能得到我的答案?

谢谢

标签: python-3.xdatetimetimezonepytz

解决方案


假设您有可用的日期和时间(请参阅我的评论),最简单的方法可能是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)

推荐阅读