Страницы

Поиск по вопросам

вторник, 7 января 2020 г.

Как получить часовой пояс на Python

#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, этот код может вернуть ошибочное значение. Дополнительные варианты, которые обходят эту проблему и/или варианты для старых версий Питона, можно найти здесь.

Комментариев нет:

Отправить комментарий