#python
Здравствуйте. Нужно получить номер часового пояса на питоне time.timezone выдаёт стоил вроде.-14000 а мне нужно получить например для Москвы 3. Кто нибудь подскажет как это сделать. Заранее спасибо
Ответы
Ответ 1
Для работы с временными зонами сами разработчики Python рекомендуют использовать модуль pytzОтвет 2
Чтобы получить верное значение для разных дат, необходимо использовать базу временны́х зон (zoneinfo), которая хранит правила смены часовых поясов в мире. В Москве эти правила менялись в последние годы. В Питоне, tzlocal модуль позволяет вернуть pytz.timezone объект, который содержит правила для локальной часовой зоны: from datetime import datetime from tzlocal import get_localzone # $ pip install tzlocal tz = get_localzone() # local timezone d = datetime.now(tz) # or some other local date utc_offset = d.utcoffset().total_seconds() Этот код возвращает текущий часовой пояс в переносимой манере с учётом правил, предоставляемых установленной версией pytz модуля. В большинстве случаев можно ограничиться стандартной библиотекой: #!/usr/bin/env python3 from datetime import datetime, timedelta, timezone d = datetime.now(timezone.utc).astimezone() # local time utc_offset = d.utcoffset() // timedelta(seconds=1) В редких случаях, на системе такой как Windows, которая не предоставляет доступ к zoneinfo, этот код может вернуть ошибочное значение. Дополнительные варианты, которые обходят эту проблему и/или варианты для старых версий Питона, можно найти здесь.
Комментариев нет:
Отправить комментарий