Spec-Zone.ru › Python 3.13

time — Доступ к времени и преобразования

Этот модуль предоставляет различные функции, связанные со временем. См. также модули datetime и calendar, предоставляющие связанные возможности.

Хотя этот модуль всегда доступен, не все функции доступны на всех платформах. Большинство функций, определённых в этом модуле, вызывают одноимённые функции библиотеки C платформы. Иногда полезно обратиться к документации платформы, поскольку семантика этих функций различается на разных платформах.

Необходимо пояснить некоторые термины и соглашения.

  • Эпоха — это момент, с которого начинается отсчёт времени; возвращаемое значение time.gmtime(0). На всех платформах это 1 января 1970 года, 00:00:00 (UTC).
  • Термин секунды с начала эпохи означает общее количество прошедших с начала эпохи секунд, обычно без учёта високосных секунд. На всех платформах, соответствующих POSIX, високосные секунды не включаются в это значение.
  • Функции этого модуля могут не обрабатывать даты и время до начала эпохи или в далёком будущем. Предельный момент в будущем определяется библиотекой C; для 32-разрядных систем он обычно приходится на 2038 год.
  • Функция strptime() может разбирать двузначные годы, если ей передан код формата %y. При разборе двузначные годы преобразуются в соответствии со стандартами POSIX и ISO C: значения 69–99 преобразуются в 1969–1999, а значения 0–68 — в 2000–2068.
  • UTC — это всемирное координированное время, которое заменило среднее время по Гринвичу (GMT) в качестве основы международного отсчёта времени. Акроним UTC — не ошибка, а соответствует более ранней, независимой от языка схеме именования стандартов времени, таких как UT0, UT1 и UT2.
  • DST — это переход на летнее время, при котором в течение части года часовой пояс обычно сдвигается на один час. Правила перехода на летнее время произвольны (определяются местным законодательством) и могут меняться из года в год. Библиотека C содержит таблицу местных правил (часто она считывается из системного файла, что обеспечивает гибкость) и является единственным достоверным источником сведений в этом вопросе.
  • Точность различных функций реального времени может быть ниже, чем можно предположить по единицам измерения, в которых выражены их значения или аргументы. Например, в большинстве систем Unix часы «тикают» лишь 50 или 100 раз в секунду.
  • С другой стороны, точность функций time() и sleep() выше, чем у их аналогов в Unix: время выражается числами с плавающей точкой, time() возвращает наиболее точное доступное время (используя Unix gettimeofday(), если она доступна), а sleep() принимает время с ненулевой дробной частью (для этого используется Unix select(), если она доступна).
  • Значение времени, возвращаемое функциями gmtime(), localtime() и strptime() и принимаемое функциями asctime(), mktime() и strftime(), представляет собой последовательность из 9 целых чисел. Возвращаемые значения функций gmtime(), localtime() и strptime() также предоставляют имена атрибутов для отдельных полей.

    Описание этих объектов см. в разделе struct_time.

    Изменено в версии 3.3: Тип struct_time был дополнен атрибутами tm_gmtoff и tm_zone, если платформа поддерживает соответствующие элементы struct tm.

    Изменено в версии 3.6: Атрибуты tm_gmtoff и tm_zone типа struct_time теперь доступны на всех платформах.

  • Для преобразования между представлениями времени используйте следующие функции:

    Из

    В

    Функция

    секунды с начала эпохи

    struct_time в UTC

    gmtime()

    секунды с начала эпохи

    struct_time по местному времени

    localtime()

    struct_time в UTC

    секунды с начала эпохи

    calendar.timegm()

    struct_time по местному времени

    секунды с начала эпохи

    mktime()

Функции

time.asctime([t])

Преобразует кортеж или struct_time, представляющий время, как возвращаемое gmtime() или localtime(), в строку следующего вида: 'Sun Jun 20 23:21:05 1993'. Поле дня занимает два символа, и если день состоит из одной цифры, перед ним ставится пробел, например: 'Wed Jun  9 04:26:40 1993'.

Если t не указан, используется текущее время, возвращаемое localtime(). asctime() не использует информацию о локали.

Примечание

В отличие от одноимённой функции C, asctime() не добавляет символ перевода строки в конце.

time.pthread_getcpuclockid(thread_id)

Возвращает clk_id часов процессорного времени для указанного потока thread_id.

Используйте threading.get_ident() или атрибут ident объектов threading.Thread, чтобы получить подходящее значение для thread_id.

Предупреждение

Передача недопустимого или уже завершившего работу thread_id может привести к неопределённому поведению, например к ошибке сегментации.

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

Дополнительную информацию см. на странице руководства pthread_getcpuclockid(3).

Добавлено в версии 3.7.

time.clock_getres(clk_id)

Возвращает разрешение (точность) указанных часов clk_id. Список допустимых значений clk_id см. в разделе Константы идентификаторов часов.

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

Добавлено в версии 3.3.

time.clock_gettime(clk_id) → float

Возвращает время указанных часов clk_id. Список допустимых значений clk_id см. в разделе Константы идентификаторов часов.

Используйте clock_gettime_ns(), чтобы избежать потери точности, вызванной типом float.

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

Добавлено в версии 3.3.

time.clock_gettime_ns(clk_id) → int

Подобна clock_gettime(), но возвращает время в наносекундах.

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

Добавлено в версии 3.7.

time.clock_settime(clk_id, time: float)

Устанавливает время указанных часов clk_id. В настоящее время для clk_id принимается только значение CLOCK_REALTIME.

Используйте clock_settime_ns(), чтобы избежать потери точности, вызванной типом float.

Доступность: Unix, кроме Android и iOS.

Добавлено в версии 3.3.

time.clock_settime_ns(clk_id, time: int)

Подобна clock_settime(), но устанавливает время в наносекундах.

Доступность: Unix, кроме Android и iOS.

Добавлено в версии 3.7.

time.ctime([secs])

Преобразует время, выраженное в секундах с момента начала эпохи, в строку вида: 'Sun Jun 20 23:21:05 1993', представляющую местное время. Поле дня занимает два символа, и если день состоит из одной цифры, перед ним ставится пробел, например: 'Wed Jun  9 04:26:40 1993'.

Если secs не указан или равен None, используется текущее время, возвращаемое time(). ctime(secs) эквивалентно asctime(localtime(secs)). ctime() не использует информацию о локали.

time.get_clock_info(name)

Получает сведения об указанных часах в виде объекта пространства имён. Поддерживаются следующие имена часов и соответствующие функции для чтения их значений:

  • 'monotonic': time.monotonic()
  • 'perf_counter': time.perf_counter()
  • 'process_time': time.process_time()
  • 'thread_time': time.thread_time()
  • 'time': time.time()

Результат имеет следующие атрибуты:

  • adjustable: True, если часы могут изменяться автоматически (например, службой NTP) или вручную системным администратором, и False в противном случае
  • implementation: Имя базовой функции C, используемой для получения значения часов. Возможные значения см. в разделе Константы идентификаторов часов.
  • monotonic: True, если часы не могут идти назад, и False в противном случае
  • resolution: Разрешение часов в секундах (float)

Добавлено в версии 3.3.

time.gmtime([secs])

Преобразует время, выраженное в секундах с момента начала эпохи, в объект struct_time в UTC, в котором флаг dst всегда равен нулю. Если secs не указан или равен None, используется текущее время, возвращаемое time(). Доли секунды игнорируются. Описание объекта struct_time см. выше. Обратной для этой функции является calendar.timegm().

time.localtime([secs])

Подобна gmtime(), но преобразует время в местное. Если secs не указан или равен None, используется текущее время, возвращаемое time(). Флаг dst устанавливается в 1, если для указанного времени действует летнее время.

localtime() может вызвать OverflowError, если временная метка выходит за диапазон значений, поддерживаемых функциями C localtime() или gmtime() платформы, и OSError при сбое localtime() или gmtime(). Часто поддерживаются только годы с 1970 по 2038.

time.mktime(t)

Это обратная функция для localtime(). Её аргументом является объект struct_time или полный кортеж из 9 элементов (поскольку необходим флаг dst; если его значение неизвестно, используйте -1), который задаёт время в местном часовом поясе, а не в UTC. Функция возвращает число с плавающей точкой для совместимости с time(). Если входное значение не может быть представлено как допустимое время, возникает исключение OverflowError или ValueError (в зависимости от того, перехватывает ли недопустимое значение Python или базовые библиотеки C). Самая ранняя дата, для которой можно сгенерировать время, зависит от платформы.

time.monotonic() → float

Возвращает значение (в долях секунды) монотонных часов, то есть часов, которые не могут идти назад. На эти часы не влияют изменения системных часов. Начальная точка возвращаемого значения не определена, поэтому допустима только разница между результатами двух вызовов.

Часы:

  • В Windows вызываются QueryPerformanceCounter() и QueryPerformanceFrequency().
  • В macOS вызываются mach_absolute_time() и mach_timebase_info().
  • В HP-UX вызывается gethrtime().
  • Если доступна, вызывается clock_gettime(CLOCK_HIGHRES).
  • В противном случае вызывается clock_gettime(CLOCK_MONOTONIC).

Используйте monotonic_ns(), чтобы избежать потери точности, вызванной типом float.

Добавлено в версии 3.3.

Изменено в версии 3.5: Функция теперь всегда доступна, а часы теперь одинаковы для всех процессов.

Изменено в версии 3.10: В macOS часы теперь одинаковы для всех процессов.

time.monotonic_ns() → int

Подобна monotonic(), но возвращает время в наносекундах.

Добавлено в версии 3.7.

time.perf_counter() → float

Возвращает значение (в долях секунды) счётчика производительности, то есть часов с наибольшим доступным разрешением для измерения коротких промежутков времени. Включает время, прошедшее во время сна. Часы одинаковы для всех процессов. Начальная точка возвращаемого значения не определена, поэтому допустима только разница между результатами двух вызовов.

Особенность реализации CPython: В CPython используются те же часы, что и в time.monotonic(); это монотонные часы, то есть часы, которые не могут идти назад.

Используйте perf_counter_ns(), чтобы избежать потери точности, вызванной типом float.

Добавлено в версии 3.3.

Изменено в версии 3.10: В Windows часы теперь одинаковы для всех процессов.

Изменено в версии 3.13: Используются те же часы, что и в time.monotonic().

time.perf_counter_ns() → int

Подобна perf_counter(), но возвращает время в наносекундах.

Добавлено в версии 3.7.

time.process_time() → float

Возвращает значение (в долях секунды) суммы системного и пользовательского процессорного времени текущего процесса. Не включает время, прошедшее во время сна. По определению, относится ко всему процессу. Начальная точка возвращаемого значения не определена, поэтому допустима только разница между результатами двух вызовов.

Используйте process_time_ns(), чтобы избежать потери точности, вызванной типом float.

Добавлено в версии 3.3.

time.process_time_ns() → int

Подобна process_time(), но возвращает время в наносекундах.

Добавлено в версии 3.7.

time.sleep(secs)

Приостанавливает выполнение вызывающего потока на указанное количество секунд. Аргумент может быть числом с плавающей точкой, чтобы задать более точную продолжительность сна.

Если сон прерывается сигналом, а обработчик сигнала не вызывает исключение, ожидание запускается заново с пересчитанным временем ожидания.

Приостановка может длиться произвольно дольше запрошенного времени из-за планирования других действий в системе.

Реализация для Windows

В Windows, если secs равен нулю, поток уступает оставшуюся часть своего кванта времени любому другому потоку, готовому к выполнению. Если таких потоков нет, функция немедленно возвращает управление, и поток продолжает выполнение. В Windows 8.1 и более новых версиях используется таймер высокого разрешения с разрешением 100 наносекунд. Если secs равен нулю, используется Sleep(0).

Реализация для Unix

  • Если доступна, используется clock_nanosleep() (разрешение: 1 наносекунда);
  • Или, если доступна, используется nanosleep() (разрешение: 1 наносекунда);
  • Или используется select() (разрешение: 1 микросекунда).

Примечание

Чтобы имитировать «пустую операцию», используйте pass, а не time.sleep(0).

Чтобы добровольно уступить процессор, задайте реальную политику планирования и вместо этого используйте os.sched_yield().

Вызывает событие аудита time.sleep с аргументом secs.

Изменено в версии 3.5: Теперь функция приостанавливает выполнение как минимум на secs, даже если сон прерывается сигналом, за исключением случая, когда обработчик сигнала вызывает исключение (обоснование см. в PEP 475).

Изменено в версии 3.11: В Unix теперь используются функции clock_nanosleep() и nanosleep(), если они доступны. В Windows теперь используется ожидаемый таймер.

Изменено в версии 3.13: Вызывает событие аудита.

time.strftime(format[, t])

Преобразует кортеж или struct_time, представляющий время, как возвращаемое gmtime() или localtime(), в строку в соответствии с аргументом format. Если t не указан, используется текущее время, возвращаемое localtime(). format должен быть строкой. Если какое-либо поле в t выходит за допустимый диапазон, возникает исключение ValueError.

0 является допустимым аргументом для любой позиции в кортеже времени; если обычно это недопустимое значение, оно принудительно заменяется на корректное.

В строку format можно включать следующие директивы. Они приведены без необязательного указания ширины поля и точности; в результате strftime() они заменяются указанными символами:

Директива

Значение

Примечания

%a

Сокращённое название дня недели согласно локали.

%A

Полное название дня недели согласно локали.

%b

Сокращённое название месяца согласно локали.

%B

Полное название месяца согласно локали.

%c

Представление даты и времени, соответствующее локали.

%d

День месяца десятичным числом [01,31].

%f

Микросекунды десятичным числом

[000000,999999].

(1)

%H

Час (24-часовой формат) десятичным числом [00,23].

%I

Час (12-часовой формат) десятичным числом [01,12].

%j

День года десятичным числом [001,366].

%m

Месяц десятичным числом [01,12].

%M

Минута десятичным числом [00,59].

%p

Эквивалент AM или PM согласно локали.

(2)

%S

Секунда десятичным числом [00,61].

(3)

%U

Номер недели в году (воскресенье — первый день недели) десятичным числом [00,53]. Все дни нового года до первого воскресенья считаются относящимися к неделе 0.

(4)

%u

День недели (понедельник — 1; воскресенье — 7) десятичным числом [1, 7].

%w

День недели десятичным числом [0 (воскресенье), 6].

%W

Номер недели в году (понедельник — первый день недели) десятичным числом [00,53]. Все дни нового года до первого понедельника считаются относящимися к неделе 0.

(4)

%x

Представление даты, соответствующее локали.

%X

Представление времени, соответствующее локали.

%y

Год без века десятичным числом [00,99].

%Y

Год с веком десятичным числом.

%z

Смещение часового пояса, указывающее положительную или отрицательную разницу во времени относительно UTC/GMT в формате +HHMM или -HHMM, где H — цифры часов, а M — цифры минут [-23:59, +23:59]. [1]

%Z

Название часового пояса (пустая строка, если часового пояса нет). Устарело. [1]

%G

Год по ISO 8601 (подобен %Y, но соответствует правилам календарного года ISO 8601). Год начинается с недели, в которую входит первый четверг календарного года.

%V

Номер недели по ISO 8601 (десятичным числом [01,53]). Первая неделя года — та, в которую входит первый четверг года. Недели начинаются в понедельник.

%%

Литерал — символ '%'.

Примечания:

  1. Директива формата %f применяется только к strptime(), но не к strftime(). Однако см. также datetime.datetime.strptime() и datetime.datetime.strftime(), где директива формата %f применяется к микросекундам.
  2. При использовании с функцией strptime() директива %p влияет на выходное поле часа, только если для разбора часа используется директива %I.
  1. Фактический диапазон — от 0 до 61; значение 60 допустимо во временных метках, представляющих високосные секунды, а значение 61 поддерживается по историческим причинам.
  2. При использовании с функцией strptime() значения %U и %W используются в вычислениях только в том случае, если указаны день недели и год.

Примером служит формат дат, совместимый с форматом, указанным в стандарте электронной почты Интернета RFC 2822. [1]

>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
'Thu, 28 Jun 2001 14:17:15 +0000'

На некоторых платформах могут поддерживаться дополнительные директивы, но стандартизованы ANSI C только перечисленные здесь. Полный список кодов формата, поддерживаемых вашей платформой, см. в документации strftime(3).

На некоторых платформах после начального '%' директивы может сразу следовать необязательное указание ширины поля и точности в приведённом порядке; это также непереносимо. Обычно ширина поля равна 2, за исключением %j, для которого она равна 3.

time.strptime(string[, format])

Разбирает строку, представляющую время, в соответствии с заданным форматом. Возвращаемое значение — это struct_time, возвращаемое функцией gmtime() или localtime().

Параметр format использует те же директивы, что и strftime(); по умолчанию используется "%a %b %d %H:%M:%S %Y", соответствующий формату, возвращаемому функцией ctime(). Если строку string невозможно разобрать в соответствии с format или после разбора остаются лишние данные, возбуждается исключение ValueError. Значения по умолчанию, используемые для заполнения отсутствующих данных, когда более точные значения невозможно определить, — (1900, 1, 1, 0, 0, 0, 0, 1, -1). И string, и format должны быть строками.

Например:

>>> import time
>>> time.strptime("30 Nov 00", "%d %b %y")
time.struct_time(tm_year=2000, tm_mon=11, tm_mday=30, tm_hour=0, tm_min=0,
                 tm_sec=0, tm_wday=3, tm_yday=335, tm_isdst=-1)

Поддержка директивы %Z основана на значениях, содержащихся в tzname, и на том, является ли daylight истинным. Поэтому эта поддержка зависит от платформы, за исключением распознавания UTC и GMT, которые известны всегда (и считаются часовыми поясами без перехода на летнее время).

Поддерживаются только директивы, указанные в документации. Поскольку strftime() реализована отдельно для каждой платформы, иногда она может поддерживать больше директив, чем перечислено. Однако strptime() не зависит от платформы и поэтому не обязательно поддерживает все директивы, доступные на платформе, но не указанные в документации как поддерживаемые.

class time.struct_time

Тип последовательности значений времени, возвращаемой функциями gmtime(), localtime() и strptime(). Это объект с интерфейсом именованного кортежа: значения можно получить по индексу и по имени атрибута. Присутствуют следующие значения:

Индекс

Атрибут

Значения

0

tm_year

(например, 1993)

1

tm_mon

диапазон [1, 12]

2

tm_mday

диапазон [1, 31]

3

tm_hour

диапазон [0, 23]

4

tm_min

диапазон [0, 59]

5

tm_sec

диапазон [0, 61]; см. Примечание (2) в strftime()

6

tm_wday

диапазон [0, 6]; понедельник — 0

7

tm_yday

диапазон [1, 366]

8

tm_isdst

0, 1 или -1; см. ниже

Н/Д

tm_zone

сокращённое название часового пояса

Н/Д

tm_gmtoff

смещение к востоку от UTC в секундах

Обратите внимание: в отличие от структуры C, значение месяца находится в диапазоне [1, 12], а не [0, 11].

При вызовах mktime() атрибут tm_isdst можно установить в 1, если действует летнее время, и в 0, если оно не действует. Значение -1 означает, что это неизвестно; обычно в таком случае подставляется правильное значение.

Если функции, ожидающей struct_time, передать кортеж неверной длины или с элементами неверного типа, возбуждается исключение TypeError.

time.time() → float

Возвращает время в секундах, прошедших с начала эпохи, в виде числа с плавающей точкой. Обработка високосных секунд зависит от платформы. В Windows и большинстве систем Unix високосные секунды не учитываются при подсчёте времени в секундах с начала эпохи. Это время обычно называют временем Unix.

Обратите внимание: хотя время всегда возвращается в виде числа с плавающей точкой, не все системы обеспечивают точность времени лучше одной секунды. Обычно эта функция возвращает неубывающие значения, однако она может вернуть значение меньше предыдущего, если системные часы были переведены назад между двумя вызовами.

Число, возвращаемое функцией time(), можно преобразовать в более привычный формат времени (например, год, месяц, день, час и т. д.) в UTC, передав его функции gmtime(), или в местное время, передав его функции localtime(). В обоих случаях возвращается объект struct_time, атрибуты которого позволяют получить компоненты календарной даты.

Часы:

  • В Windows вызывается GetSystemTimePreciseAsFileTime().
  • Если доступно, вызывается clock_gettime(CLOCK_REALTIME).
  • В противном случае вызывается gettimeofday().

Используйте time_ns(), чтобы избежать потери точности, вызванной типом float.

Изменено в версии 3.13: В Windows вызывается GetSystemTimePreciseAsFileTime() вместо GetSystemTimeAsFileTime().

time.time_ns() → int

Аналогична time(), но возвращает время в виде целого числа наносекунд, прошедших с начала эпохи.

Добавлено в версии 3.7.

time.thread_time() → float

Возвращает значение (в долях секунды), равное сумме системного и пользовательского процессорного времени текущего потока. Время сна не учитывается. По определению, значение относится к конкретному потоку. Точка отсчёта возвращаемого значения не определена, поэтому допустимо использовать только разность результатов двух вызовов в одном потоке.

Используйте thread_time_ns(), чтобы избежать потери точности, вызванной типом float.

Доступность: Linux, Unix, Windows.

Системы Unix с поддержкой CLOCK_THREAD_CPUTIME_ID.

Добавлено в версии 3.7.

time.thread_time_ns() → int

Аналогична thread_time(), но возвращает время в наносекундах.

Добавлено в версии 3.7.

time.tzset()

Сбрасывает правила преобразования времени, используемые библиотечными процедурами. Переменная среды TZ определяет, как это происходит. Она также задаёт переменные tzname (из переменной среды TZ), timezone (секунды к западу от UTC без учёта летнего времени), altzone (секунды к западу от UTC с учётом летнего времени) и daylight (равную 0, если в этом часовом поясе нет правил перехода на летнее время, или ненулевому значению, если существует время — в прошлом, настоящем или будущем, — когда действует летнее время).

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

Примечание

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

Переменная среды TZ не должна содержать пробельных символов.

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

std offset [dst [offset [,start[/time], end[/time]]]]

Компоненты:

std and 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. День 0 — воскресенье.

time имеет тот же формат, что и offset, за исключением того, что знак в начале («-» или «+») не допускается. Если время не указано, по умолчанию используется 02:00:00.

>>> os.environ['TZ'] = 'EST+05EDT,M4.1.0,M10.5.0'
>>> time.tzset()
>>> time.strftime('%X %x %Z')
'02:07:36 05/08/03 EDT'
>>> os.environ['TZ'] = 'AEST-10AEDT-11,M10.5.0,M3.5.0'
>>> time.tzset()
>>> time.strftime('%X %x %Z')
'16:08:12 05/08/03 AEST'

Во многих системах Unix (включая *BSD, Linux, Solaris и Darwin) для задания правил часового пояса удобнее использовать системную базу zoneinfo (tzfile(5)). Для этого задайте переменной среды TZ путь к нужному файлу данных часового пояса относительно корня системной базы часовых поясов «zoneinfo», обычно расположенного в /usr/share/zoneinfo. Например: 'US/Eastern', 'Australia/Melbourne', 'Egypt' или 'Europe/Amsterdam'.

>>> os.environ['TZ'] = 'US/Eastern'
>>> time.tzset()
>>> time.tzname
('EST', 'EDT')
>>> os.environ['TZ'] = 'Egypt'
>>> time.tzset()
>>> time.tzname
('EET', 'EEST')

Константы идентификаторов часов

Эти константы используются в качестве параметров функций clock_getres() и clock_gettime().

time.CLOCK_BOOTTIME

Идентична CLOCK_MONOTONIC, но также учитывает время, в течение которого система была приостановлена.

Это позволяет приложениям получать монотонные часы, учитывающие приостановку системы, не сталкиваясь со сложностями, связанными с CLOCK_REALTIME, у которых могут возникать скачки при изменении времени с помощью settimeofday() или аналогичных средств.

Доступность: Linux >= 2.6.39.

Добавлено в версии 3.7.

time.CLOCK_HIGHRES

В ОС Solaris есть таймер CLOCK_HIGHRES, который пытается использовать оптимальный источник аппаратного времени и может обеспечивать точность, близкую к наносекундной. CLOCK_HIGHRES — это неизменяемые часы высокого разрешения.

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

Добавлено в версии 3.3.

time.CLOCK_MONOTONIC

Часы, которые нельзя установить; они показывают монотонное время, прошедшее с некоторой неопределённой начальной точки.

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

Добавлено в версии 3.3.

time.CLOCK_MONOTONIC_RAW

Аналогична CLOCK_MONOTONIC, но предоставляет доступ к необработанному аппаратному времени, на которое не влияют корректировки NTP.

Доступность: Linux >= 2.6.28, macOS >= 10.12.

Добавлено в версии 3.3.

time.CLOCK_MONOTONIC_RAW_APPROX

Аналогична CLOCK_MONOTONIC_RAW, но считывает значение, кэшированное системой при переключении контекста, и поэтому менее точна.

Доступность: macOS >= 10.12.

Добавлено в версии 3.13.

time.CLOCK_PROCESS_CPUTIME_ID

Таймер процессорного времени с высоким разрешением для отдельного процесса.

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

Добавлено в версии 3.3.

time.CLOCK_PROF

Таймер процессорного времени с высоким разрешением для отдельного процесса.

Доступность: FreeBSD, NetBSD >= 7, OpenBSD.

Добавлено в версии 3.7.

time.CLOCK_TAI

Международное атомное время

Чтобы результат был правильным, в системе должна быть актуальная таблица високосных секунд. Программное обеспечение PTP или NTP может поддерживать такую таблицу.

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

Добавлено в версии 3.9.

time.CLOCK_THREAD_CPUTIME_ID

Часы процессорного времени, предназначенные для отдельного потока.

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

Добавлено в версии 3.3.

time.CLOCK_UPTIME

Часы, абсолютное значение которых соответствует времени работы системы без приостановки; обеспечивают точное измерение времени непрерывной работы как за весь период, так и за интервал.

Доступность: FreeBSD, OpenBSD >= 5.5.

Добавлено в версии 3.7.

time.CLOCK_UPTIME_RAW

Часы, монотонно увеличивающие значение и отсчитывающие время с произвольной точки; на них не влияют корректировки частоты или времени, и они не увеличивают значение, пока система находится в спящем режиме.

Доступность: macOS >= 10.12.

Добавлено в версии 3.8.

time.CLOCK_UPTIME_RAW_APPROX

Как и CLOCK_UPTIME_RAW, но значение кэшируется системой при переключении контекста и поэтому менее точно.

Доступность: macOS >= 10.12.

Добавлено в версии 3.13.

Следующая константа — единственный параметр, который можно передать функции clock_settime().

time.CLOCK_REALTIME

Часы реального времени. Для установки этих часов требуются соответствующие привилегии. Эти часы одинаковы для всех процессов.

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

Добавлено в версии 3.3.

Константы часовых поясов

time.altzone

Смещение местного часового пояса с летним временем в секундах к западу от UTC, если он определён. Это значение отрицательно, если местный часовой пояс с летним временем расположен к востоку от UTC (как в Западной Европе, включая Великобританию). Используйте его, только если daylight не равно нулю. См. примечание ниже.

time.daylight

Ненулевое значение, если определён часовой пояс с летним временем. См. примечание ниже.

time.timezone

Смещение местного часового пояса (без летнего времени) в секундах к западу от UTC (отрицательное значение в большей части Западной Европы, положительное — в США, нулевое — в Великобритании). См. примечание ниже.

time.tzname

Кортеж из двух строк: первая — название местного часового пояса без летнего времени, вторая — название местного часового пояса с летним временем. Если часовой пояс с летним временем не определён, вторую строку использовать не следует. См. примечание ниже.

Примечание

Значения приведённых выше констант часовых поясов (altzone, daylight, timezone и tzname) определяются правилами часовых поясов, действующими при загрузке модуля или при последнем вызове tzset(), и могут быть неверными для времени в прошлом. Для получения информации о часовом поясе рекомендуется использовать значения tm_gmtoff и tm_zone, полученные от localtime().

См. также

Module datetime

Более объектно-ориентированный интерфейс для работы с датами и временем.

Module locale

Средства интернационализации. Настройка локали влияет на интерпретацию многих спецификаторов формата в strftime() и strptime().

Module calendar

Общие функции для работы с календарём. Функция timegm() является обратной к gmtime() из этого модуля.

Сноски

[1] (1,2,3)

Использование %Z теперь считается устаревшим, однако escape-последовательность %z, которая разворачивается в предпочтительное смещение часов/минут, поддерживается не всеми библиотеками ANSI C. Кроме того, при строгом прочтении исходного стандарта RFC 822 1982 года требуется указывать год двумя цифрами (%y, а не %Y), однако задолго до 2000 года на практике перешли к четырёхзначному формату. Позднее RFC 822 устарел, а четырёхзначный год был сначала рекомендован в RFC 1123, а затем предписан в RFC 2822.

© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/time.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API