在 Python 的帮助下转换时区的输出格式

Convert output format of timezone with help of Python

也许有人遇到过,可以给点建议。

我正在获取时区“欧洲/莫斯科”,但需要将其转换为“UTC + 3”。 想到的只有字典的想法,但这是不得已的方法。 如果有现成的解决方案,我不会感到惊讶,但我没有google它很好)

示例:

timezone = "Europe/Moscow" -> timezone = "UTC+3"

Python 3.9+:

您可以使用 zoneinfo 包。 (link)

确保考虑夏令时。

from datetime import datetime
import zoneinfo
zone = zoneinfo.ZoneInfo("Europe/Moscow")

offset = datetime.now(zone).utcoffset().total_seconds()//(60*60)
print(offset) # 3 / 4 - This depends on daylight saving time
print(f"UTC+{int(offset)}") # UTC+3 / UTC+4

年长者:

尝试pytz,但一定要考虑夏令时。 (link)

import pytz
from datetime import datetime

moscow_tz = pytz.timezone("Europe/Moscow")

offset = moscow_tz.utcoffset(datetime.now())

print(offset) # 3:00:00 / 4:00:00 - This depends on daylight saving time
print(f"UTC+{int(offset.total_seconds()//(60*60))}") # UTC+3 / UTC+4