也许有人遇到过并能够提供建议。
我正在获取时区“欧洲/莫斯科”,但需要将其转换为“UTC + 3”。 我的脑海中只有一个用字典的想法,但这是最后的手段。 如果有现成的解决方案,我不会感到惊讶,但我没有很好地谷歌它)
示例:
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
关于python - 在Python的帮助下转换时区的输出格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68526624/