Сообщить об ошибке.

Функция tzset() модуля time в Python

Установить правила времени для часового пояса

Синтаксис:

import time

time.tzset()

Параметры:

  • нет

Возвращаемое значение:

  • нет

Описание:

Функция tzset() модуля time сбрасывает правила преобразования времени, используемые библиотечными процедурами. Переменная окружения TZ определяет, как это делается.

Также будут установлены переменные time.tzname из переменной окружения TZ, time.timezone без DST секунд к западу от UTC, time.altzone DST секунд к западу от UTC и time.daylight в 0, если этот часовой пояс не имеет правил перехода на летнее время или ненулевой, когда применяется летнее время.

Доступность: Unix.

Примечание:

  • Хотя во многих случаях изменение переменной среды TZ может повлиять на вывод таких функций, как time.localtime() без вызова time.tzset(), на это поведение не следует полагаться.
  • Переменная окружения TZ не должна содержать пробелов.

Стандартный формат переменной среды TZ (пробелы добавлены для ясности):

std offset [dst [offset [,start[/time], end[/time]]]]
  • std и dst - три или более буквенно-цифровых символов, обозначающих сокращения часового пояса. Они будут выводится в time.tzname
  • offset - смещение, имеет вид: ± hh[:mm[:ss]]. Это указывает на добавленное значение к местному времени, требуемое для прибытия в UTC. Если значению предшествует ‘-‘, то часовой пояс находится к востоку от гринвича, в противном случае это запад. Если после dst нет смещения, предполагается, что летнее время на один час опережает стандартное время.
  • start[/time], end[/time] - указывает, когда переходить на летнее время и обратно. Формат даты начала и окончания является одним из следующих:
    • Jn - юлианский день n (1 <= n <= 365). Високосные дни не учитываются, поэтому во всех годах 28 февраля - день 59, а 1 марта - день 60.
    • n - начинающийся с нуля юлианский день (0 <= n <= 365). Високосные дни считаются и на 29 февраля можно сослаться.
    • Mm.n.d - день d (0 <= d <= 6) недели n месяца m года (1 <= n <= 5, 1 <= m <= 12, где неделя 5 означает "последний день d месяца m", который может произойти либо на четвертой, либо на пятой неделе. 1-я неделя - это первая неделя, когда наступает день d. День ноль - воскресенье.

Время имеет тот же формат, что и смещение, за исключением того, что ведущий знак ‘-‘ или ‘+’ не допускается. По умолчанию, если время не указано - это 02:00:00.

Примеры использования:

>>> import time, os
>>> os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'
>>> time.tzset()
>>> time.strftime('%X %x %Z')
# '06:07:18 04/25/20 EDT'
>>> os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0'
>>> time.tzset()
>>> time.strftime('%X %x %Z')
# '20:06:52 04/25/20 AEST'

Во многих системах Unix, включая *BSD, Linux, Solaris и Darwin удобнее использовать базу данных systeminfo системы tzfile для определения правил часовых поясов. Для этого задайте в переменной среды TZ путь к необходимому файлу данных часового пояса относительно корня базы данных системного часового пояса zoneinfo, обычно расположенной в каталоге /usr/share/zoneinfo.

Например 'Europe/Moscow', 'US/Eastern', 'Australia/Melbourne'или 'Egypt'

>>> import time, os
>>> os.environ['TZ'] = 'US/Eastern'
>>> time.tzset()
>>> time.tzname
# ('EST', 'EDT')
>>> os.environ['TZ'] = 'Egypt'
>>> time.tzset()
>>> time.tzname
# ('EET', 'EEST')
>>> os.environ['TZ'] = 'Europe/Moscow'
>>> time.tzset()
>>> time.tzname
# ('MSK', 'MSK')
>>> time.strftime('%X %x %Z')
# '13:10:53 04/25/20 MSK'