Документация Python неофициальный перевод

time.md

303 строк · 38.1 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/library/time.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 15.3. [`time`](https://python-all.ru/2.7/library/time.html#module-time) – Доступ ко времени и преобразования89Этот модуль предоставляет различные функции для работы со временем. За дополнительной функциональностью обращайтесь к модулям [`datetime`](https://python-all.ru/2.7/library/datetime.html#module-datetime) и [`calendar`](https://python-all.ru/2.7/library/calendar.html#module-calendar).1011Хотя этот модуль доступен всегда, не все функции доступны на всех платформах. Большинство функций, определённых в этом модуле, вызывают одноимённые функции из библиотеки C платформы. Иногда может быть полезно обратиться к документации платформы, так как семантика этих функций различается в разных системах.1213Необходимо пояснить некоторую терминологию и соглашения.1415- *Эпоха* – это точка начала отсчёта времени. Для 1 января того года в 0 часов «время с начала эпохи» равно нулю. Для UNIX эпоха – 1970 год. Чтобы узнать, что такое эпоха, посмотрите на `gmtime(0)`.1617- Функции этого модуля не обрабатывают даты и время до начала эпохи или далеко в будущем. Точка отсечения в будущем определяется библиотекой C; для Unix она обычно приходится на 2038 год.1819- **Проблема 2000 года (Y2K)**: Python зависит от системной библиотеки C, у которой обычно нет проблем с 2000 годом, поскольку все даты и время внутренне представлены в секундах с начала эпохи. Функции, принимающие [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time) (см. ниже), как правило, требуют четырёхзначный год. Для обратной совместимости двузначные годы поддерживаются, если переменная модуля `accept2dyear` – ненулевое целое; эта переменная инициализируется значением `1`, если только переменная окружения [`PYTHONY2K`](https://python-all.ru/2.7/using/cmdline.html#envvar-PYTHONY2K) не установлена в непустую строку – в этом случае она инициализируется значением `0`. Таким образом, можно установить [`PYTHONY2K`](https://python-all.ru/2.7/using/cmdline.html#envvar-PYTHONY2K) в непустую строку в окружении, чтобы требовать четырёхзначный год для всех вводимых годов. Когда двузначные годы принимаются, они преобразуются по стандарту POSIX или X/Open: значения 69–99 отображаются на 1969–1999, а значения 0–68 – на 2000–2068. Значения 100–1899 всегда недопустимы.2021- UTC – это Всемирное координированное время (ранее известно как среднее время по Гринвичу, или GMT). Аббревиатура UTC – не ошибка, а компромисс между английским и французским языками.2223- DST – это летнее время, корректировка часового пояса (обычно на один час) в течение части года. Правила DST магические (определяются местным законодательством) и могут меняться от года к году. Библиотека C содержит таблицу с местными правилами (часто она считывается из системного файла для гибкости) и является единственным источником Истинной Мудрости в этом отношении.24- Точность различных функций реального времени может быть ниже, чем предполагают единицы, в которых выражается их значение или аргумент. Например, на большинстве Unix-систем тактовая частота составляет всего 50 или 100 тиков в секунду.25- С другой стороны, точность [`time()`](https://python-all.ru/2.7/library/time.html#time.time) и [`sleep()`](https://python-all.ru/2.7/library/time.html#time.sleep) выше, чем у их Unix-аналогов: время представляется числами с плавающей запятой, [`time()`](https://python-all.ru/2.7/library/time.html#time.time) возвращает самое точное из доступных времён (с использованием Unix `gettimeofday()`, где это возможно), а [`sleep()`](https://python-all.ru/2.7/library/time.html#time.sleep) принимает время с ненулевой дробной частью (для этого, где возможно, используется Unix `select()`).26- Значение времени, возвращаемое функциями [`gmtime()`](https://python-all.ru/2.7/library/time.html#time.gmtime), [`localtime()`](https://python-all.ru/2.7/library/time.html#time.localtime) и [`strptime()`](https://python-all.ru/2.7/library/time.html#time.strptime), а также принимаемое функциями [`asctime()`](https://python-all.ru/2.7/library/time.html#time.asctime), [`mktime()`](https://python-all.ru/2.7/library/time.html#time.mktime) и [`strftime()`](https://python-all.ru/2.7/library/time.html#time.strftime), можно рассматривать как последовательность из 9 целых чисел. Возвращаемые значения [`gmtime()`](https://python-all.ru/2.7/library/time.html#time.gmtime), [`localtime()`](https://python-all.ru/2.7/library/time.html#time.localtime) и [`strptime()`](https://python-all.ru/2.7/library/time.html#time.strptime) также предоставляют имена атрибутов для отдельных полей.2728  Описание этих объектов см. в [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time).2930  Изменено в версии 2.2: Последовательность значений времени была изменена с кортежа на [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time), с добавлением имён атрибутов для полей.31- Используйте следующие функции для преобразования между представлениями времени:3233  | Из | В | Использовать |34  | --- | --- | --- |35  | секунды с начала эпохи | [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time) в UTC | [`gmtime()`](https://python-all.ru/2.7/library/time.html#time.gmtime) |36  | секунды с начала эпохи | [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time) в местном времени | [`localtime()`](https://python-all.ru/2.7/library/time.html#time.localtime) |37  | [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time) в UTC | секунды с начала эпохи | [`calendar.timegm()`](https://python-all.ru/2.7/library/calendar.html#calendar.timegm) |38  | [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time) в местном времени | секунды с начала эпохи | [`mktime()`](https://python-all.ru/2.7/library/time.html#time.mktime) |3940Модуль определяет следующие функции и элементы данных:4142#### `time.accept2dyear`4344Логическое значение, указывающее, принимаются ли двузначные значения года. По умолчанию истинно, но будет установлено в ложь, если переменная окружения [`PYTHONY2K`](https://python-all.ru/2.7/using/cmdline.html#envvar-PYTHONY2K) была установлена в непустую строку. Также может быть изменено во время выполнения.4546#### `time.altzone`4748Смещение местного часового пояса с переходом на летнее время (DST) в секундах к западу от UTC, если оно определено. Оно отрицательно, если местный часовой пояс с DST находится к востоку от UTC (как в Западной Европе, включая Великобританию). Используйте это, только если `daylight` не равно нулю.4950#### `time.asctime([t])`5152Преобразует кортеж или [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time), представляющие время, как возвращено [`gmtime()`](https://python-all.ru/2.7/library/time.html#time.gmtime) или [`localtime()`](https://python-all.ru/2.7/library/time.html#time.localtime), в строку из 24 символов следующего вида: `'Sun Jun 20 23:21:05 1993'`. Если *t* не указан, используется текущее время, возвращённое [`localtime()`](https://python-all.ru/2.7/library/time.html#time.localtime). Локаль не используется в [`asctime()`](https://python-all.ru/2.7/library/time.html#time.asctime).5354> **Примечание**55>56> В отличие от одноименной функции в C, в конце строки нет символа новой строки.5758Изменено в версии 2.1: Разрешено опускать *t*.5960#### `time.clock()`6162В Unix возвращает текущее процессорное время в виде числа с плавающей запятой, выраженного в секундах. Точность и, по сути, само определение понятия «процессорное время» зависит от одноимённой функции C, но в любом случае эту функцию следует использовать для бенчмаркинга Python или замера времени алгоритмов.6364В Windows эта функция возвращает количество секунд реального времени, прошедших с момента первого вызова этой функции, в виде числа с плавающей запятой, на основе функции Win32 `QueryPerformanceCounter()`. Точность обычно лучше одной микросекунды.6566#### `time.ctime([secs])`6768Преобразует время, выраженное в секундах с начала эпохи, в строку, представляющую местное время. Если *secs* не передан или [`None`](https://python-all.ru/2.7/library/constants.html#None), используется текущее время, возвращаемое [`time()`](https://python-all.ru/2.7/library/time.html#time.time). `ctime(secs)` эквивалентно `asctime(localtime(secs))`. Локаль не используется [`ctime()`](https://python-all.ru/2.7/library/time.html#time.ctime).6970Изменено в версии 2.1: Разрешено опускать *secs*.7172Изменено в версии 2.4: Если *secs* равно [`None`](https://python-all.ru/2.7/library/constants.html#None), используется текущее время.7374#### `time.daylight`7576Не равно нулю, если часовой пояс с переходом на летнее время (DST) определён.7778#### `time.gmtime([secs])`7980Преобразует время, выраженное в секундах с начала эпохи, в [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time) в UTC, в котором флаг dst всегда равен нулю. Если *secs* не указано или равно [`None`](https://python-all.ru/2.7/library/constants.html#None), используется текущее время, возвращаемое функцией [`time()`](https://python-all.ru/2.7/library/time.html#time.time). Доли секунды игнорируются. Описание объекта [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time) см. выше. Обратное преобразование выполняет функция [`calendar.timegm()`](https://python-all.ru/2.7/library/calendar.html#calendar.timegm).8182Изменено в версии 2.1: Разрешено опускать *secs*.8384Изменено в версии 2.4: Если *secs* равно [`None`](https://python-all.ru/2.7/library/constants.html#None), используется текущее время.8586#### `time.localtime([secs])`8788Как [`gmtime()`](https://python-all.ru/2.7/library/time.html#time.gmtime), но преобразует в местное время. Если *secs* не указан или равен [`None`](https://python-all.ru/2.7/library/constants.html#None), используется текущее время, возвращаемое [`time()`](https://python-all.ru/2.7/library/time.html#time.time). Флаг dst устанавливается в `1`, когда для указанного времени действует летнее время.8990Изменено в версии 2.1: Разрешено опускать *secs*.9192Изменено в версии 2.4: Если *secs* равно [`None`](https://python-all.ru/2.7/library/constants.html#None), используется текущее время.9394#### `time.mktime(t)`9596Это обратная функция для [`localtime()`](https://python-all.ru/2.7/library/time.html#time.localtime). Её аргумент – [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time) или полный 9-кортеж (поскольку требуется флаг dst; если он неизвестен, используйте `-1` в качестве флага dst), который выражает время в *местном* времени, а не UTC. Возвращает число с плавающей запятой для совместимости с [`time()`](https://python-all.ru/2.7/library/time.html#time.time). Если входное значение не может быть представлено как допустимое время, будет возбуждено [`OverflowError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.OverflowError) или [`ValueError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.ValueError) (в зависимости от того, перехватывается ли недопустимое значение Python'ом или нижележащими библиотеками C). Самая ранняя дата, для которой может быть сгенерировано время, зависит от платформы.9798#### `time.sleep(secs)`99100Приостанавливает выполнение текущего потока на указанное количество секунд. Аргумент может быть числом с плавающей точкой для более точного времени ожидания. Фактическое время приостановки может быть меньше запрошенного, потому что любой перехваченный сигнал прервёт вызов [`sleep()`](https://python-all.ru/2.7/library/time.html#time.sleep) после выполнения обработчика этого сигнала. Кроме того, время приостановки может быть больше запрошенного на произвольную величину из-за планирования других действий в системе.101102#### `time.strftime(format[, t])`103104Преобразует кортеж или [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time), представляющие время, как возвращено [`gmtime()`](https://python-all.ru/2.7/library/time.html#time.gmtime) или [`localtime()`](https://python-all.ru/2.7/library/time.html#time.localtime), в строку в соответствии с аргументом *format*. Если *t* не указан, используется текущее время, возвращённое [`localtime()`](https://python-all.ru/2.7/library/time.html#time.localtime). *format* должен быть строкой. [`ValueError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.ValueError) возбуждается, если любое поле в *t* выходит за допустимый диапазон. [`strftime()`](https://python-all.ru/2.7/library/time.html#time.strftime) возвращает зависимую от локали байтовую строку; результат можно преобразовать в unicode с помощью `strftime(<myformat>).decode(locale.getlocale()[1])`.105106Изменено в версии 2.1: Разрешено опускать *t*.107108Изменено в версии 2.4: [`ValueError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.ValueError) возбуждается, если поле в *t* выходит за диапазон.109110Изменено в версии 2.5: 0 теперь является допустимым аргументом для любой позиции в кортеже времени; если обычно это недопустимо, значение принудительно заменяется корректным.111112В строку *format* могут быть встроены следующие директивы. Они показаны без опциональных спецификаций ширины и точности поля и заменяются указанными символами в результате [`strftime()`](https://python-all.ru/2.7/library/time.html#time.strftime):113114| Директива | Значение | Примечания |115| --- | --- | --- |116| `%a` | Сокращённое название дня недели в соответствии с локалью. |  |117| `%A` | Полное название дня недели в соответствии с локалью. |  |118| `%b` | Сокращённое название месяца в соответствии с локалью. |  |119| `%B` | Полное название месяца в соответствии с локалью. |  |120| `%c` | Представление даты и времени, подходящее для локали. |  |121| `%d` | День месяца в виде десятичного числа \[01,31\]. |  |122| `%H` | Часы (24-часовой формат) в виде десятичного числа \[00,23\]. |  |123| `%I` | Часы (12-часовой формат) в виде десятичного числа \[01,12\]. |  |124| `%j` | День года в виде десятичного числа \[001,366\]. |  |125| `%m` | Месяц в виде десятичного числа \[01,12\]. |  |126| `%M` | Минуты в виде десятичного числа \[00,59\]. |  |127| `%p` | Эквивалент AM или PM, зависящий от локали. | (1) |128| `%S` | Секунды в виде десятичного числа \[00,61\]. | (2) |129| `%U` | Номер недели в году (воскресенье – первый день недели) в виде десятичного числа \[00,53\]. Все дни нового года до первого воскресенья считаются частью недели 0. | (3) |130| `%w` | День недели в виде десятичного числа \[0 (воскресенье), 6\]. |  |131| `%W` | Номер недели в году (понедельник – первый день недели) в виде десятичного числа \[00,53\]. Все дни нового года до первого понедельника считаются частью недели 0. | (3) |132| `%x` | Представление даты, соответствующее локали. |  |133| `%X` | Представление времени, соответствующее локали. |  |134| `%y` | Год без века в виде десятичного числа \[00,99\]. |  |135| `%Y` | Год со столетием в виде десятичного числа. |  |136| `%Z` | Название часового пояса (нет символов, если часовой пояс не определён). |  |137| `%%` | Литеральный символ `'%'`. |  |138139Примечания:1401411. При использовании с функцией [`strptime()`](https://python-all.ru/2.7/library/time.html#time.strptime) директива `%p` влияет только на поле вывода часов, если директива `%I` используется для разбора часов.1422. Диапазон на самом деле составляет от `0` до `61`; это учитывает високосные секунды и (очень редкие) двойные високосные секунды.1433. При использовании с функцией [`strptime()`](https://python-all.ru/2.7/library/time.html#time.strptime), `%U` и `%W` используются в вычислениях только тогда, когда указаны день недели и год.144145Вот пример формата дат, совместимого с указанным в [**RFC 2822**](https://python-all.ru/2.7/library/time.html) стандарте интернет-почты. [1](https://python-all.ru/2.7/library/time.html#id2)146147```python148>>> from time import gmtime, strftime149>>> strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())150'Thu, 28 Jun 2001 14:17:15 +0000'151```152153На некоторых платформах могут поддерживаться дополнительные директивы, но только перечисленные здесь имеют значение, стандартизированное ANSI C. Чтобы увидеть полный набор кодов формата, поддерживаемых на вашей платформе, обратитесь к документации *strftime(3)*.154155На некоторых платформах сразу за начальным символом `'%'` директивы может следовать необязательная спецификация ширины поля и точности в следующем порядке; это также непереносимо. Ширина поля обычно равна 2, за исключением `%j`, где она равна 3.156157#### `time.strptime(string[, format])`158159Разбирает строку, представляющую время, в соответствии с форматом. Возвращаемое значение – [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time), как возвращено [`gmtime()`](https://python-all.ru/2.7/library/time.html#time.gmtime) или [`localtime()`](https://python-all.ru/2.7/library/time.html#time.localtime).160161Параметр *format* использует те же директивы, что и [`strftime()`](https://python-all.ru/2.7/library/time.html#time.strftime); по умолчанию он равен `"%a %b %d %H:%M:%S %Y"`, что соответствует форматированию, возвращаемому [`ctime()`](https://python-all.ru/2.7/library/time.html#time.ctime). Если *string* не удаётся разобрать в соответствии с *format*, или если после разбора остаются лишние данные, возбуждается [`ValueError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.ValueError). Значения по умолчанию, используемые для заполнения любых отсутствующих данных, когда более точные значения невозможно вывести: `(1900, 1, 1, 0, 0, 0, 0, 1, -1)`.162163Например:164165```python166>>> import time167>>> time.strptime("30 Nov 00", "%d %b %y")   168time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0,169                 tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)170```171172Поддержка директивы `%Z` основана на значениях, содержащихся в `tzname`, и на том, является ли `daylight` истинным. Из-за этого она зависит от платформы, за исключением распознавания UTC и GMT, которые всегда известны (и считаются часовыми поясами без перехода на летнее время).173174Поддерживаются только директивы, указанные в документации. Поскольку `strftime()` реализуется на каждой платформе по-своему, он иногда может предлагать больше директив, чем перечислено. Но `strptime()` не зависит от платформы и поэтому не обязательно поддерживает все доступные директивы, которые не задокументированы как поддерживаемые.175176#### `class time.struct_time`177178Тип последовательности значений времени, возвращаемой [`gmtime()`](https://python-all.ru/2.7/library/time.html#time.gmtime), [`localtime()`](https://python-all.ru/2.7/library/time.html#time.localtime) и [`strptime()`](https://python-all.ru/2.7/library/time.html#time.strptime). Это объект с интерфейсом [именованного кортежа](https://python-all.ru/2.7/glossary.html#term-named-tuple): значения могут быть получены по индексу и по имени атрибута. Присутствуют следующие значения:179180| Индекс | Атрибут | Значения |181| --- | --- | --- |182| 0 | `tm_year` | (например, 1993) |183| 1 | `tm_mon` | диапазон \[1, 12\] |184| 2 | `tm_mday` | диапазон \[1, 31\] |185| 3 | `tm_hour` | диапазон \[0, 23\] |186| 4 | `tm_min` | диапазон \[0, 59\] |187| 5 | `tm_sec` | диапазон \[0, 61\]; см. **(2)** в описании [`strftime()`](https://python-all.ru/2.7/library/time.html#time.strftime) |188| 6 | `tm_wday` | диапазон \[0, 6\], понедельник – 0 |189| 7 | `tm_yday` | диапазон \[1, 366\] |190| 8 | `tm_isdst` | 0, 1 или -1; см. ниже |191192Новое в версии 2.2.193194Обратите внимание, что в отличие от структуры C, значение месяца находится в диапазоне \[1, 12\], а не \[0, 11\]. Значение года обрабатывается так, как описано выше в разделе [Проблема 2000 года (Y2K)](https://python-all.ru/2.7/library/time.html#time-y2kissues).195196В вызовах [`mktime()`](https://python-all.ru/2.7/library/time.html#time.mktime) параметр `tm_isdst` может быть установлен в 1, когда действует летнее время, и в 0, когда нет. Значение -1 означает, что неизвестно, и обычно приводит к определению правильного состояния.197198Если кортеж неверной длины передаётся функции, ожидающей [`struct_time`](https://python-all.ru/2.7/library/time.html#time.struct_time), или содержит элементы неверного типа, возбуждается [`TypeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.TypeError).199200#### `time.time()`201202Возвращает время в секундах с начала эпохи в виде числа с плавающей запятой. Обратите внимание, что хотя время всегда возвращается в виде числа с плавающей запятой, не все системы обеспечивают точность времени лучше 1 секунды. Хотя эта функция обычно возвращает неубывающие значения, она может вернуть значение меньше предыдущего вызова, если системные часы были переведены назад между двумя вызовами.203204#### `time.timezone`205206Смещение местного часового пояса (без DST) в секундах к западу от UTC (отрицательное в большей части Западной Европы, положительное в США, нулевое в Великобритании).207208#### `time.tzname`209210Кортеж из двух строк: первая – название местного часового пояса без DST, вторая – название местного часового пояса с DST. Если часовой пояс с DST не определён, вторая строка не должна использоваться.211212#### `time.tzset()`213214Сбрасывает правила преобразования времени, используемые библиотечными процедурами. Переменная окружения `TZ` указывает, как это делается. Она также устанавливает переменные `tzname` (из переменной окружения `TZ`), `timezone` (не-летнее время, секунды к западу от UTC), `altzone` (летнее время, секунды к западу от UTC) и `daylight` (в 0, если часовой пояс не имеет правил перехода на летнее время, или в ненулевое значение, если существует время – прошлое, настоящее или будущее – когда применяется летнее время).215216Новое в версии 2.3.217218Доступность: Unix.219220> **Примечание**221>222> Хотя во многих случаях изменение переменной окружения `TZ` может повлиять на результат работы функций, таких как [`localtime()`](https://python-all.ru/2.7/library/time.html#time.localtime), без вызова [`tzset()`](https://python-all.ru/2.7/library/time.html#time.tzset), на такое поведение полагаться не следует.223>224> Переменная окружения `TZ` не должна содержать пробельных символов.225226Стандартный формат переменной окружения `TZ` следующий (пробелы добавлены для наглядности):227228```python229std offset [dst [offset [,start[/time], end[/time]]]]230```231232Где компоненты имеют следующее значение:233234**`std` и `dst`**235236Три или более буквенно-цифровых символа, обозначающие аббревиатуры часовых поясов. Они будут переданы в time.tzname.237238**`offset`**239240Смещение имеет вид: `± hh[:mm[:ss]]`. Оно указывает значение, которое нужно добавить к местному времени, чтобы получить UTC. Если перед смещением стоит знак «-», часовой пояс находится к востоку от нулевого меридиана; в противном случае – к западу. Если после dst не указано смещение, считается, что летнее время опережает стандартное на один час.241242**`start[/time], end[/time]`**243244Указывает, когда переходить на летнее время и обратно. Формат дат начала и окончания – один из следующих:245246**`Jn`**247248Юлианский день *n* (1 \<= *n* \<= 365). Високосные дни не учитываются, поэтому во все годы 28 февраля – день 59, а 1 марта – день 60.249250**`n`**251252Юлианский день с нулевым отсчетом (0 \<= *n* \<= 365). Високосные дни учитываются, и можно указать 29 февраля.253254**`Mm.n.d`**255256День *d* (0 \<= *d* \<= 6) или неделя *n* месяца *m* года (1 \<= *n* \<= 5, 1 \<= *m* \<= 12, где неделя 5 означает «последний день *d* в месяце *m*», который может приходиться на четвёртую или пятую неделю). Неделя 1 – это первая неделя, в которой встречается день *d*. День ноль – воскресенье.257258`time` имеет тот же формат, что и `offset`, за исключением того, что начальный знак («-» или «+») не допускается. Значение по умолчанию, если время не указано, – 02:00:00.259260```python261>>> os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'262>>> time.tzset()263>>> time.strftime('%X %x %Z')264'02:07:36 05/08/03 EDT'265>>> os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0'266>>> time.tzset()267>>> time.strftime('%X %x %Z')268'16:08:12 05/08/03 AEST'269```270271Во многих системах Unix (включая \*BSD, Linux, Solaris и Darwin) удобнее использовать системную базу данных zoneinfo (*tzfile(5)*) для указания правил часового пояса. Для этого задайте переменную окружения `TZ` как путь к требуемому файлу данных часового пояса относительно корня системной базы данных часовых поясов 'zoneinfo', которая обычно находится в `/usr/share/zoneinfo`. Например, `'US/Eastern'`, `'Australia/Melbourne'`, `'Egypt'` или `'Europe/Amsterdam'`.272273```python274>>> os.environ['TZ'] = 'US/Eastern'275>>> time.tzset()276>>> time.tzname277('EST', 'EDT')278>>> os.environ['TZ'] = 'Egypt'279>>> time.tzset()280>>> time.tzname281('EET', 'EEST')282```283284> **См. также**285>286> **Модуль [`datetime`](https://python-all.ru/2.7/library/datetime.html#module-datetime)**287>288> Более объектно-ориентированный интерфейс для работы с датами и временем.289>290> **Модуль [`locale`](https://python-all.ru/2.7/library/locale.html#module-locale)**291>292> Службы интернационализации. Настройка локали влияет на интерпретацию многих спецификаторов формата в [`strftime()`](https://python-all.ru/2.7/library/time.html#time.strftime) и [`strptime()`](https://python-all.ru/2.7/library/time.html#time.strptime).293>294> **Модуль [`calendar`](https://python-all.ru/2.7/library/calendar.html#module-calendar)**295>296> Общие функции, связанные с календарём. [`timegm()`](https://python-all.ru/2.7/library/calendar.html#calendar.timegm) является обратной функцией по отношению к [`gmtime()`](https://python-all.ru/2.7/library/time.html#time.gmtime) из этого модуля.297298Сноски299300**[1](https://python-all.ru/2.7/library/time.html#id1)**301302Использование `%Z` теперь устарело, но escape-последовательность `%z`, которая раскрывается в предпочтительное смещение часа/минуты, поддерживается не всеми библиотеками ANSI C. Кроме того, строгое прочтение оригинального стандарта [**RFC 822**](https://python-all.ru/2.7/library/time.html) 1982 года требует двузначного года (%y, а не %Y), но на практике перешли на 4-значные годы задолго до 2000 года. После этого [**RFC 822**](https://python-all.ru/2.7/library/time.html) устарел, и 4-значный год был сначала рекомендован [**RFC 1123**](https://python-all.ru/2.7/library/time.html), а затем предписан [**RFC 2822**](https://python-all.ru/2.7/library/time.html).303