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()возвращает наиболее точное доступное время (используя Unixgettimeofday(), если она доступна), аsleep()принимает время с ненулевой дробной частью (для этого используется Unixselect(), если она доступна). -
Значение времени, возвращаемое функциями
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секунды с начала эпохи
struct_timeпо местному времениstruct_timeв UTCсекунды с начала эпохи
struct_timeпо местному временисекунды с начала эпохи
Функции
-
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, если временная метка выходит за диапазон значений, поддерживаемых функциями Clocaltime()или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 часы теперь одинаковы для всех процессов.
- В Windows вызываются
-
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]). Первая неделя года — та, в которую входит первый четверг года. Недели начинаются в понедельник.
%%Литерал — символ
'%'.Примечания:
- Директива формата
%fприменяется только кstrptime(), но не кstrftime(). Однако см. такжеdatetime.datetime.strptime()иdatetime.datetime.strftime(), где директива формата%fприменяется к микросекундам. - При использовании с функцией
strptime()директива%pвлияет на выходное поле часа, только если для разбора часа используется директива%I.
- Фактический диапазон — от
0до61; значение60допустимо во временных метках, представляющих високосные секунды, а значение61поддерживается по историческим причинам. - При использовании с функцией
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. - В Windows вызывается
Изменено в версии 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().
См. также
-
Moduledatetime -
Более объектно-ориентированный интерфейс для работы с датами и временем.
-
Modulelocale -
Средства интернационализации. Настройка локали влияет на интерпретацию многих спецификаторов формата в
strftime()иstrptime(). -
Modulecalendar -
Общие функции для работы с календарём. Функция
timegm()является обратной кgmtime()из этого модуля.
Сноски
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/time.html