time
— Доступ к времени и его преобразование¶
Этот модуль предоставляет различные функции, связанные со временем. Связанные с ним функции см. также в модулях datetime
и calendar
.
Хотя этот модуль всегда доступен, не все функции доступны на всех платформах. Большинство функций, определенных в этом модуле, вызывают одноименные функции библиотеки платформы C. Иногда полезно обратиться к документации по платформе, поскольку семантика этих функций на разных платформах различна.
Необходимо объяснить некоторые термины и условности.
Точка epoch - это точка начала отсчета времени, возвращаемое значение
time.gmtime(0)
. На всех платформах это 1 января 1970 года, 00:00:00 (UTC).
Термин seconds since the epoch относится к общему количеству прошедших секунд с момента наступления эпохи, обычно не считая leap seconds. Високосные секунды исключаются из этого общего числа на всех POSIX-совместимых платформах.
Функции этого модуля не могут работать с датами и временем до эпохи или далеко в будущем. Точка отсечения в будущем определяется библиотекой C; для 32-битных систем она обычно находится в 2038 году.
Функция
strptime()
может анализировать двузначные годы, если ей задан код формата%y
. При разборе двузначных лет они преобразуются в соответствии со стандартами POSIX и ISO C: значения 69–99 преобразуются в 1969–1999, а значения 0–68 преобразуются в 2000–2068.
UTC - это всемирное координированное время (ранее известное как среднее время по Гринвичу, или GMT). Аббревиатура UTC - это не ошибка, а компромисс между английским и французским языками.
DST - это переход на летнее время, корректировка часового пояса на (обычно) один час в течение части года. Правила 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: Атрибуты
struct_time
tm_gmtoff
иtm_zone
теперь доступны на всех платформах.Используйте следующие функции для преобразования между представлениями времени:
С сайта
На
Используйте
секунд с момента наступления эпохи
struct_time
в UTCсекунд с момента наступления эпохи
struct_time
по местному времениstruct_time
в UTCсекунд с момента наступления эпохи
struct_time
по местному временисекунд с момента наступления эпохи
Функции¶
- time.asctime([t])¶
Преобразуйте кортеж или
struct_time
, представляющий время, как возвращеноgmtime()
илиlocaltime()
, в строку следующего вида:'Sun Jun 20 23:21:05 1993'
. Поле day состоит из двух символов и заполняется пробелами, если день состоит из одной цифры, например:'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 может привести к неопределенному поведению, например, к ошибке сегментации.
Availability: Unix
Дополнительную информацию см. на странице руководства для pthread_getcpuclockid(3).
Added in version 3.7.
- time.clock_getres(clk_id)¶
Возвращает разрешение (точность) указанного тактового генератора clk_id. Список допустимых значений для clk_id см. в Константы идентификатора тактового генератора.
Availability: Unix.
Added in version 3.3.
- time.clock_gettime(clk_id) float ¶
Возвращает время указанного тактового генератора clk_id. Список принимаемых значений для clk_id см. в Константы идентификатора тактового генератора.
Используйте
clock_gettime_ns()
, чтобы избежать потери точности, вызванной типомfloat
.Availability: Unix.
Added in version 3.3.
- time.clock_gettime_ns(clk_id) int ¶
Аналогично
clock_gettime()
, но время возвращается в виде наносекунд.Availability: Unix.
Added in version 3.7.
- time.clock_settime(clk_id, time: float)¶
Установка времени указанных часов clk_id. В настоящее время единственным допустимым значением для clk_id является
CLOCK_REALTIME
.Используйте
clock_settime_ns()
, чтобы избежать потери точности, вызванной типомfloat
.Availability: Unix.
Added in version 3.3.
- time.clock_settime_ns(clk_id, time: int)¶
Аналогично
clock_settime()
, но время задается в наносекундах.Availability: Unix.
Added in version 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()
Результат имеет следующие атрибуты:
регулируемый:
True
, если часы могут быть изменены автоматически (например, демоном NTP) или вручную системным администратором,False
в противном случаереализация: Имя базовой функции языка C, используемой для получения значения часов. Возможные значения см. в Константы идентификатора тактового генератора.
монотонный:
True
, если часы не могут идти назад,False
в противном случаеresolution: Разрешение часов в секундах (
float
)
Added in version 3.3.
- time.gmtime([secs])¶
Преобразование времени, выраженного в секундах с момента epoch, в
struct_time
в UTC, в котором флаг dst всегда равен нулю. Если не указано secs илиNone
, используется текущее время, возвращаемоеtime()
. Доли секунды игнорируются. Описание объектаstruct_time
см. выше. Обратную функцию см. вcalendar.timegm()
.
- time.localtime([secs])¶
Аналогично
gmtime()
, но переводит в местное время. Если не указано secs илиNone
, используется текущее время, возвращаемоеtime()
. Флаг dst устанавливается в1
, если к заданному времени применяется DST.localtime()
может вызватьOverflowError
, если временная метка находится вне диапазона значений, поддерживаемых функциямиlocaltime()
илиgmtime()
платформы C, иOSError
при отказеlocaltime()
илиgmtime()
. Обычно это ограничено годами между 1970 и 2038.
- time.mktime(t)¶
Это обратная функция
localtime()
. Ее аргументом являетсяstruct_time
или полный 9-кортеж (поскольку необходим флаг dst; используйте-1
в качестве флага dst, если он неизвестен), который выражает время в местном времени, а не в 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
.Added in version 3.3.
Изменено в версии 3.5: Теперь эта функция доступна всегда и всегда в масштабах всей системы.
Изменено в версии 3.10: В macOS эта функция стала общесистемной.
- time.monotonic_ns() int ¶
Аналогично
monotonic()
, но время возвращается в виде наносекунд.Added in version 3.7.
- time.perf_counter() float ¶
Возвращает значение (в долях секунды) счетчика производительности, т.е. часов с максимальным разрешением для измерения короткого времени. Оно включает время, прошедшее во время сна, и является общесистемным. Точка отсчета возвращаемого значения не определена, поэтому действительна только разница между результатами двух вызовов.
Детали реализации CPython: В CPython используются те же часы, что и в
time.monotonic()
, и это монотонные часы, т.е. часы, которые не могут идти назад.Используйте
perf_counter_ns()
, чтобы избежать потери точности, вызванной типомfloat
.Added in version 3.3.
Изменено в версии 3.10: В Windows эта функция теперь является общесистемной.
Изменено в версии 3.13: Используйте те же часы, что и
time.monotonic()
.
- time.perf_counter_ns() int ¶
Аналогично
perf_counter()
, но время возвращается в виде наносекунд.Added in version 3.7.
- time.process_time() float ¶
Возвращает значение (в долях секунды) суммы системного и пользовательского процессорного времени текущего процесса. Оно не включает время, прошедшее во время сна. По определению оно является общепроцессным. Точка отсчета возвращаемого значения не определена, поэтому действительна только разница между результатами двух вызовов.
Используйте
process_time_ns()
, чтобы избежать потери точности, вызванной типомfloat
.Added in version 3.3.
- time.process_time_ns() int ¶
Аналогично
process_time()
, но время возвращается в виде наносекунд.Added in version 3.7.
- time.sleep(secs)¶
Приостанавливает выполнение вызывающего потока на заданное количество секунд. Аргумент может быть числом с плавающей точкой, чтобы указать более точное время сна.
Если сон прерывается сигналом и обработчик сигнала не вызывает исключения, сон перезапускается с пересчитанным таймаутом.
Время приостановки может быть больше запрошенного на произвольную величину из-за планирования других действий в системе.
В Windows, если secs равно нулю, поток передает оставшуюся часть своего временного среза любому другому потоку, готовому к выполнению. Если других потоков, готовых к выполнению, нет, функция немедленно возвращается, и поток продолжает выполнение. В Windows 8.1 и более новых версиях в реализации используется high-resolution timer, который обеспечивает разрешение в 100 наносекунд. Если secs равно нулю, используется
Sleep(0)
.Реализация Unix:
Используйте
clock_nanosleep()
, если он доступен (разрешение: 1 наносекунда);Или используйте
nanosleep()
, если он доступен (разрешение: 1 наносекунда);Или используйте
select()
(разрешение: 1 микросекунда).
Поднимает auditing event
time.sleep
с аргументомsecs
.Изменено в версии 3.5: Теперь функция спит не менее секунд, даже если сон прерывается сигналом, за исключением случаев, когда обработчик сигнала вызывает исключение (см. обоснование в PEP 475).
Изменено в версии 3.11: В Unix теперь используются функции
clock_nanosleep()
иnanosleep()
, если они доступны. В Windows теперь используется таймер с ожиданием.Изменено в версии 3.13: Поднимает событие аудита.
- time.strftime(format[, t])¶
Преобразование кортежа или
struct_time
, представляющего время, возвращенноеgmtime()
илиlocaltime()
, в строку, заданную аргументом формат. Если t не указано, используется текущее время, возвращаемоеlocaltime()
. формат должен быть строкой. Если какое-либо поле в 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)
%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]
%%
Буквальный символ
'%'
.Примечания:
Директива формата
%f
применяется только кstrptime()
, но не кstrftime()
. Однако см. такжеdatetime.datetime.strptime()
иdatetime.datetime.strftime()
, где директива формата%f
- applies to microseconds.При использовании с функцией
strptime()
директива%p
влияет на выходное поле часа только в том случае, если для разбора часа используется директива%I
.
На самом деле диапазон составляет от
0
до61
; значение60
действительно для временных меток, представляющих leap seconds, а значение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()
. Это объект с интерфейсом named tuple: к значениям можно обращаться по индексу и по имени атрибута. Присутствуют следующие значения:Индекс
Атрибут
Значения
0
- tm_year¶
(например, 1993)
1
- tm_mon¶
диапазон [1, 12]
2
- tm_day¶
диапазон [1, 31]
3
- tm_hour¶
диапазон [0, 23]
4
- tm_min¶
диапазон [0, 59]
5
- tm_sec¶
диапазон [0, 61]; см. Note (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 ¶
Возвращает время в секундах с момента epoch в виде числа с плавающей точкой. Обработка leap seconds зависит от платформы. В Windows и большинстве Unix-систем високосные секунды не учитываются при определении времени в секундах с момента epoch. Это обычно обозначается как Unix time.
Обратите внимание, что хотя время всегда возвращается в виде числа с плавающей точкой, не все системы предоставляют время с точностью выше 1 секунды. Хотя эта функция обычно возвращает неубывающие значения, она может вернуть меньшее значение, чем предыдущий вызов, если между двумя вызовами системные часы были переведены назад.
Число, возвращаемое
time()
, можно преобразовать в более распространенный формат времени (т. е. год, месяц, день, час и т. д.) в UTC, передав его в функциюgmtime()
, или в местное время, передав его в функциюlocaltime()
. В обоих случаях возвращается объектstruct_time
, из которого можно получить доступ к компонентам календарной даты в качестве атрибутов.Часы:
В Windows вызовите
GetSystemTimeAsFileTime()
.Позвоните по номеру
clock_gettime(CLOCK_REALTIME)
, если он доступен.В противном случае вызовите
gettimeofday()
.
Используйте
time_ns()
, чтобы избежать потери точности, вызванной типомfloat
.
- time.time_ns() int ¶
Аналогично
time()
, но возвращает время в виде целого числа наносекунд с момента epoch.Added in version 3.7.
- time.thread_time() float ¶
Возвращает значение (в долях секунды) суммы системного и пользовательского процессорного времени текущего потока. Оно не включает время, прошедшее во время сна. По определению является специфичным для потока. Точка отсчета возвращаемого значения не определена, поэтому действительна только разница между результатами двух вызовов в одном и том же потоке.
Используйте
thread_time_ns()
, чтобы избежать потери точности, вызванной типомfloat
.Availability: Linux, Unix, Windows.
Unix-системы, поддерживающие
CLOCK_THREAD_CPUTIME_ID
.Added in version 3.7.
- time.thread_time_ns() int ¶
Аналогично
thread_time()
, но время возвращается в виде наносекунд.Added in version 3.7.
- time.tzset()¶
Сброс правил преобразования времени, используемых библиотечными процедурами. Переменная окружения
TZ
определяет, как это сделать. Она также установит переменныеtzname
(из переменной окруженияTZ
),timezone
(секунды без перехода на летнее время к западу от UTC),altzone
(секунды с переходом на зимнее время к западу от UTC) иdaylight
(в 0, если в данной временной зоне нет правил перехода на летнее время, или в ненулевое значение, если в прошлом, настоящем или будущем есть время, когда применяется переход на летнее время).Availability: Unix.
Примечание
Хотя во многих случаях изменение переменной окружения
TZ
может повлиять на вывод функций типаlocaltime()
без вызова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]
Указывает, когда следует переходить на DST и обратно. Формат начальной и конечной дат - один из следующих:
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-й день. Нулевой день - это воскресенье.
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()
или аналогичных средств.Availability: Linux >= 2.6.39.
Added in version 3.7.
- time.CLOCK_HIGHRES¶
В ОС Solaris есть таймер
CLOCK_HIGHRES
, который пытается использовать оптимальный аппаратный источник и может давать разрешение, близкое к наносекундному.CLOCK_HIGHRES
- это нерегулируемые часы с высоким разрешением.Availability: Solaris.
Added in version 3.3.
- time.CLOCK_MONOTONIC¶
Часы, которые нельзя настроить и которые показывают монотонное время с некоторой неопределенной начальной точки.
Availability: Unix.
Added in version 3.3.
- time.CLOCK_MONOTONIC_RAW¶
Аналогично
CLOCK_MONOTONIC
, но предоставляет доступ к необработанному аппаратному времени, не подверженному корректировкам NTP.Availability: Linux >= 2.6.28, macOS >= 10.12.
Added in version 3.3.
- time.CLOCK_MONOTONIC_RAW_APPROX¶
Аналогично
CLOCK_MONOTONIC_RAW
, но считывает значение, кэшированное системой при переключении контекста, и, следовательно, имеет меньшую точность.Availability: macOS >= 10.12.
Added in version 3.13.
- time.CLOCK_PROCESS_CPUTIME_ID¶
Таймер высокого разрешения для каждого процесса от центрального процессора.
Availability: Unix.
Added in version 3.3.
- time.CLOCK_PROF¶
Таймер высокого разрешения для каждого процесса от центрального процессора.
Availability: FreeBSD, NetBSD >= 7, OpenBSD.
Added in version 3.7.
- time.CLOCK_TAI¶
-
Для получения правильного ответа система должна иметь актуальную таблицу високосных секунд. Программное обеспечение PTP или NTP может поддерживать таблицу високосных секунд.
Availability: Linux.
Added in version 3.9.
- time.CLOCK_THREAD_CPUTIME_ID¶
Часы процессорного времени для конкретного потока.
Availability: Unix.
Added in version 3.3.
- time.CLOCK_UPTIME¶
Время, абсолютное значение которого - это время, в течение которого система работает и не приостанавливается, что обеспечивает точное измерение времени работы, как абсолютного, так и интервального.
Availability: FreeBSD, OpenBSD >= 5.5.
Added in version 3.7.
- time.CLOCK_UPTIME_RAW¶
Часы, которые монотонно увеличиваются, отслеживая время, прошедшее с произвольного момента, не зависят от частоты или времени и не увеличиваются, пока система находится в спящем режиме.
Availability: macOS >= 10.12.
Added in version 3.8.
- time.CLOCK_UPTIME_RAW_APPROX¶
Как и
CLOCK_UPTIME_RAW
, но значение кэшируется системой при переключении контекста и поэтому имеет меньшую точность.Availability: macOS >= 10.12.
Added in version 3.13.
Следующая константа - единственный параметр, который может быть передан в clock_settime()
.
- time.CLOCK_REALTIME¶
Общесистемные часы реального времени. Для установки этих часов требуются соответствующие привилегии.
Availability: Unix.
Added in version 3.3.
Константы часового пояса¶
- time.altzone¶
Смещение местного часового пояса DST в секундах к западу от UTC, если он определен. Это значение отрицательно, если местный часовой пояс DST находится к востоку от UTC (как в Западной Европе, включая Великобританию). Используйте это значение, только если
daylight
ненулевое. См. примечание ниже.
- time.daylight¶
Ненулевое значение, если определен часовой пояс DST. См. примечание ниже.
- time.timezone¶
Смещение местного часового пояса (без суточного времени) в секундах к западу от UTC (отрицательное в большей части Западной Европы, положительное в США, нулевое в Великобритании). См. примечание ниже.
- time.tzname¶
Кортеж из двух строк: первая - имя локального часового пояса, не относящегося к суточному времени, вторая - имя локального часового пояса, относящегося к суточному времени. Если часовой пояс DST не определен, вторая строка не должна использоваться. См. примечание ниже.
Примечание
Для перечисленных выше констант Timezone (altzone
, daylight
, timezone
и tzname
) значение определяется правилами часового пояса, действующими на момент загрузки модуля или последнего вызова tzset()
, и может быть неверным для времени в прошлом. Для получения информации о часовом поясе рекомендуется использовать результаты tm_gmtoff
и tm_zone
из localtime()
.
См.также
- Модуль
datetime
Более объектно-ориентированный интерфейс для работы с датами и временем.
- Модуль
locale
Службы интернационализации. Настройка локали влияет на интерпретацию многих спецификаторов формата в
strftime()
иstrptime()
.- Модуль
calendar
Общие функции, связанные с календарем.
timegm()
является обратной величиной по отношению кgmtime()
из этого модуля.
Сноски