在 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
也许有人遇到过,可以给点建议。
我正在获取时区“欧洲/莫斯科”,但需要将其转换为“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