Содержание страницы
time – доступ ко времени и преобразования¶time – Time access and conversions
Этот модуль предоставляет различные функции для работы со временем. За дополнительной функциональностью обращайтесь к модулям datetime и calendar.
Хотя этот модуль доступен всегда, не все функции доступны на всех платформах. Большинство функций, определённых в этом модуле, вызывают одноимённые функции из библиотеки C платформы. Иногда может быть полезно обратиться к документации платформы, так как семантика этих функций различается в разных системах.
Необходимо пояснить некоторую терминологию и соглашения.
Эпоха (epoch) – это точка начала отсчёта времени, значение, возвращаемое
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 – это летнее время, корректировка часового пояса (обычно на один час) в течение части года. Правила 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_timetm_gmtoffиtm_zoneтеперь доступны на всех платформах.Используйте следующие функции для преобразования между представлениями времени:
Из
В
Использовать
секунды с начала эпохи
struct_timeв UTCсекунды с начала эпохи
struct_timeв местном времениstruct_timeв UTCсекунды с начала эпохи
struct_timeв местном временисекунды с начала эпохи
Функции¶Functions
- 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
Дополнительную информацию см. в man-странице pthread_getcpuclockid(3).
Добавлено в версии 3.7.
- time.clock_getres(clk_id)¶
Возвращает разрешение (точность) указанных часов clk_id. Список допустимых значений для clk_id приведён в Clock ID Constants.
Доступность: Unix.
Добавлено в версии 3.3.
- time.clock_gettime(clk_id) float¶
Возвращает время указанных часов clk_id. Список допустимых значений для clk_id приведён в Clock ID Constants.
Используйте
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, если часы можно перевести вперёд или назад во времени, иначеFalse. Не относится к плавным подстройкам частоты NTP.implementation: Имя нижележащей C-функции, используемой для получения значения часов. Возможные значения описаны в Clock ID Constants.
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в качестве флага 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.Добавлено в версии 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 10 и новее реализация использует высокоточный таймер с разрешением 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 должен быть строкой.ValueErrorвозбуждается, если любое поле в t выходит за допустимый диапазон.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 5322. [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-временем.
Обратите внимание: хотя время всегда возвращается в виде числа с плавающей запятой, не все системы обеспечивают точность выше 1 секунды. Хотя эта функция обычно возвращает неубывающие значения, она может вернуть меньшее значение, чем предыдущий вызов, если системные часы были переведены назад между двумя вызовами.
Число, возвращаемое
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¶
Возвращает значение (в долях секунды) суммы системного и пользовательского времени процессора текущего потока. Оно не включает время, проведённое в режиме ожидания (sleep). По определению, это значение привязано к потоку. Точка отсчёта возвращаемого значения не определена, поэтому имеет смысл только разница между результатами двух вызовов в одном и том же потоке.
Используйте
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и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.dd-й день (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 ID Constants
Эти константы используются в качестве параметров для 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.
Константы часовых поясов¶Timezone Constants
- time.altzone¶
Смещение местного часового пояса с летним временем (DST) в секундах к западу от UTC, если таковой определен. Отрицательное значение, если местный часовой пояс с летним временем находится к востоку от UTC (как в Западной Европе, включая Великобританию). Используйте эту константу, только если
daylightне равно нулю. См. примечание ниже.
- time.daylight¶
Не равно нулю, если определен часовой пояс с летним временем. См. примечание ниже.
- time.timezone¶
Смещение местного часового пояса (без летнего времени) в секундах к западу от UTC (отрицательное в большей части Западной Европы, положительное в США, нулевое в Великобритании). См. примечание ниже.
- time.tzname¶
Кортеж из двух строк: первая – название местного часового пояса без летнего времени, вторая – название местного часового пояса с летним временем. Если часовой пояс с летним временем не определен, вторая строка не должна использоваться. См. примечание ниже.
Примечание
Для указанных выше констант часовых поясов (altzone, daylight, timezone,
и tzname) значение определяется правилами часового пояса, действующими
на момент загрузки модуля или последнего вызова tzset(), и может быть неверным
для моментов в прошлом. Рекомендуется использовать результаты tm_gmtoff и
tm_zone из localtime() для получения информации о часовом поясе.
См. также
- Модуль
datetime Более объектно-ориентированный интерфейс для работы с датами и временем.
- Модуль
locale Службы интернационализации. Настройка локали влияет на интерпретацию многих спецификаторов формата в
strftime()иstrptime().- Модуль
calendar Общие функции, связанные с календарём.
timegm()является обратной функцией по отношению кgmtime()из этого модуля.
Сноски
Эта страница – перевод. Оригинал на английском – docs.python.org. Нашли неточность? Сообщите нам.