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 не является ошибкой, а является компромиссом между английским и французским языками.
  • DST — это летнее время, корректировка часового пояса на (обычно) один час в течение части года. Правила 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: Атрибуты struct_time tm_gmtoff и tm_zone теперь доступны на всех платформах.

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

    Из

    В

    Используйте

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

    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 таймера CPU-времени, специфичного для потока, для заданного thread_id.

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

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

Передача недействительного или устаревшего 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().

Доступность: 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().

Доступность: 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 при применении DST к заданному времени.

localtime() может вызывать OverflowError, если временная метка находится за пределами диапазона значений, поддерживаемых платформой C localtime() или gmtime() функциями, и 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).

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

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

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

Изменено в версии 3.10: В macOS функция теперь системная.

time.monotonic_ns() → int

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

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

time.perf_counter() → float

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

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

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

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

Изменено в версии 3.10: В Windows функция теперь системная.

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

time.perf_counter_ns() → int

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

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

time.process_time() → float

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

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

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

time.process_time_ns() → int

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

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

time.sleep(secs)

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

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

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

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

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

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

Вызывает аудиторское событие 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(), в строку, как указано аргументом формат. Если t не указано, используется текущее время, возвращаемое localtime(). формат должен быть строкой. ValueError генерируется, если какое-либо поле в t находится за пределами допустимого диапазона.

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

В строку формат могут быть вставлены следующие директивы. Они показаны без необязательных спецификаций ширины и точности поля и заменяются указанными символами в результате 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().

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

Например:

>>> 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; см. ниже

N/A

tm_zone

аббревиатура имени часового пояса

N/A

tm_gmtoff

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

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

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

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

time.time() → float

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

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

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

Часы:

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

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

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.

END_OF_DOCUMENT_MARKER
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-й день. День ноль — воскресенье.

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) удобнее использовать базу данных системных данных часовых поясов (tzfile(5)) для указания правил часового пояса. Для этого необходимо установить переменную среды TZ в путь к необходимому файлу данных часового пояса, относительно корня базы данных системных данных часовых поясов, обычно расположенной по адресу /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

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

time.daylight

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

time.timezone

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

time.tzname

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

Примечание

Для указанных выше постоянных значений часового пояса (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 устарело, но %z escape, расширяющийся до предпочитаемого смещения часа/минуты, не поддерживается во всех библиотеках ANSI C. Кроме того, строгое прочтение оригинального стандарта RFC 822 1982 года требует двузначного года (%y вместо %Y), но на практике 4-значный год использовался задолго до 2000 года. После этого RFC 822 устарел, и 4-значный год сначала рекомендовался RFC 1123, а затем стал обязательным в RFC 2822.

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

Spec-Zone.ru

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