Модуль time в Python, реальное время ОС.
Модуль time предоставляет доступ к нескольким различным типам часов, каждый из которых используется для разных целей:
- Стандартные системные вызовы типа time.time() сообщают системное время в секундах с начала "эпохи".
- Монотонные часы time.monotonic() можно использовать для измерения прошедшего времени в каком то длительном процессе, т.к. функция не зависит от настроек системного времени и гарантирует, что никогда не передвинется назад, даже если системное время изменилось.
- Для тестирования производительности модуль предоставляет доступ к часам с максимально высоким разрешением time.perf_counter() , чтобы сделать измерения короткого времени более точными.
- Функция time.process_time() возвращает объединенное время процессора и системное время.
Хотя этот модуль всегда доступен, на некоторых платформах доступны не все функции. Большинство функций, определенных в этом модуле, вызывают библиотечные функции языка C с тем же именем. Семантика этих функций варьируется в зависимости от платформы, по этому будет полезно ознакомиться с документацией вашей платформы.
Объяснение некоторых терминов и соглашений:
- Эпоха — это точка начала времени, которая зависит от платформы. Для Unix эпоха — 1 января 1970 года, 00:00:00 (UTC). Чтобы узнать, какова эпоха на данной платформе, посмотрите time.gmtime(0) .
- Термин "секунды с начала эпохи" относится к общему количеству прошедших секунд с начала эпохи, обычно не включая високосные секунды. Дополнительные секунды исключаются из этой суммы на всех POSIX-совместимых платформах.
- Функции в этом модуле могут не обрабатывать даты и время до эпохи или в далеком будущем. Точка отсечения в будущем определяется библиотекой языка C. Для 32-битных систем это обычно 2038 год.
- Функция time.strptime() может анализировать годы записанные в двухзначном формате, если задан код формата % . Когда анализируются двухзначные годы, они конвертируются в соответствии со стандартами POSIX и ISO: значения 69–99 будут отображаться как 1969–1999, а значения 0–68 отображаются как 2000–2068.
- UTC — Всемирное координированное время, ранее известное как среднее время по Гринвичу или GMT. Аббревиатура UTC — не ошибка, а компромисс между английским и французским языками.
- Летнее время — это настройка часового пояса, обычно на один час в течение части года. Правила летнего времени магические и определяются местным законодательством, могут меняться из года в год. Библиотека языка C имеет таблицу, содержащую локальные правила, часто для гибкости она читается из системного файла и является единственным источником в этом отношении.
- Точность различных функций реального времени может быть меньше, чем предлагается единицами, в которых выражается их значение или аргумент. Например на большинстве систем Unix такт часов составляет от 50 до 100 раз в секунду.
- С другой стороны, точность time.time() и time.sleep() лучше, чем их Unix-эквиваленты: время выражается в виде чисел с плавающей запятой, time.time() возвращает наиболее точное доступное время, а time.sleep() будет принимать время с ненулевой дробью.
- Значение времени, возвращаемое time.gmtime() , time.localtime() и time.strptime() и принимаемое time.asctime() , time.mktime() и time.strftime() представляет собой последовательность из 9 целых чисел. Возвращаемые значения time.gmtime() , time.localtime() и time.strptime() также предлагают имена атрибутов для отдельных полей.
Используйте следующие функции для преобразования между представлениями времени:
Из формата | В формат | Функция |
Секунды эпохи | time.struct_time в UTC | time.gmtime() |
Секунды эпохи | time.struct_time в местном времени | time.localtime() |
time.struct_time в UTC | Секунды эпохи | calendar.timegm() |
time.struct_time в местном времени | Секунды эпохи | time.mktime() |
Примеры использования:
Для получения дополнительной информации смотрите также модули datetime и calendar .
Модуль time в Python
В Python есть модуль time , который используется для решения задач, связанных со временем. Для использования определенных в нем функций необходимо сначала его импортировать:
Дальше перечислены самые распространенные функции, связанные со временем.
Python time.time()
Функция time() возвращает число секунд, прошедших с начала эпохи. Для операционных систем Unix 1 января 1970, 00:00:00 (UTC) — начало эпохи (момент, с которого время пошло).
Python time.ctime()
Функция time.ctime() принимает в качестве аргумента количество секунд, прошедших с начала эпохи, и возвращает строку, представляющую собой местное время.
Если запустить программу, то вывод будет выглядеть так:
Python time.sleep()
Функция sleep() откладывает исполнение текущего потока на данное количество секунд.
Прежде чем переходить к другим функциям, связанных со временем, нужно вкратце разобраться с классом time.struct_time .
Класс time.struct_time
Некоторые функции в модуле time , такие как gmtime() , asctime() и другие, принимают объект time.struct_time в качестве аргумента или возвращают его.
Вот пример объекта time.struct_time .
Индекс | Атрибут | Значения |
---|---|---|
0 | tm_year | 0000, …, 2019, …, 9999 |
1 | tm_mon | 1, 2, …, 12 |
2 | tm_mday | 1, 2, …, 31 |
3 | tm_hour | 0, 1, …, 23 |
4 | tm_min | 0, 1, …, 59 |
5 | tm_sec | 0, 1, …, 61 |
6 | tm_wday | 0, 1, …, 6; Monday is 0 |
7 | tm_yday | 1, 2, …, 366 |
8 | tm_isdst | 0, 1 or -1 |
К значениям (элементам) объекта time.struct_time доступ можно получить как с помощью индексов, так и через атрибуты.
Python time.localtime()
Функция localtime() принимает в качестве аргумента количество секунд, прошедших с начала эпохи, и возвращает stuct_time в локальном времени.
Вывод этой программы будет следующим:
Если localtime() передан аргумент None , то вернется значение из time() .
Python time.gmtime()
Функция gmtime() принимает в качестве аргумента количество секунд, прошедших с начала эпохи и возвращает struct_time в UTC.
Вывод этой программы будет следующим:
Если gmtime() передан аргумент None , то вернется значение time() .
Python time.mktime()
Функция mktime() принимает struct_time (или кортеж, содержащий 9 значений, относящихся к struct_time ) в качестве аргумента и возвращает количество секунд, прошедших с начала эпохи, в местном времени. Это функция, обратная localtime() .
Следующий пример показывает, как связаны mktime() и localtime() .
Вывод будет следующий:
Python time.asctime()
Функция asctime() принимает struct_time (или кортеж, содержащий 9 значений, относящихся к struct_time ) в качестве аргумента и возвращает строку, представляющую собой дату.
Python time.strftime()
Функция strftime принимает stuct_time (или соответствующий кортеж) в качестве аргумента и возвращает строку с датой в зависимости от использованного формата. Например:
Вывод будет следующий:
Здесь %Y , %m , %d , %H и другие — элементы форматирования.
- %Y — год [0001,…, 2019, 2020,…, 9999]
- %m — месяц [01, 02, …, 11, 12]
- %d — день [01, 02, …, 30, 31]
- %H — час [00, 01, …, 22, 23
- %M — минута [00, 01, …, 58, 59]
- %S — секунда [00, 01, …, 58, 61]
Python time.strptime()
Функция strptime() делает разбор строки python, в которой упоминается время и возвращает struct_time .
Работа с модулем времени(time) в Python
Модуль времени Python предоставляет нам различные функции для внедрения системного времени в наше приложение с помощью сценариев.
Чтобы начать работу с модулем времени, нам нужно импортировать его в наш скрипт python, используя следующую инструкцию:
При выполнении операций с данными, относящимися к метке времени, необходимо иметь отправную точку, с которой мы можем начать выполнять операции с ними.
Эпоха — это начальная точка времени, от которой следует отсчитывать время.
Функции модуля времени Python
Модуль времени Python предлагает хороший набор функций для работы с отметкой времени.
Ниже приведены наиболее часто используемые функции:
- time.time()
- time.sleep()
- time.ctime()
- time.localtime()
- time.mktime()
- time.gmtime()
- time.strptime()
- time.strftime()
- time.asctime()
1 метод time.time()
В модуле времени Python есть метод time.time() который дает секунды текущего местного времени.
2 метод time.sleep()
Метод time.sleep() обеспечивает интервал времени или задержку между выполнением текущих процессов или потоков.
В приведенном выше фрагменте кода, когда мы пытаемся выполнить приведенный выше код, можно легко наблюдать задержку, пока операторы вывода отображаются на консоли.
3 метод time.localtime()
Модуль времени Python содержит класс struct_time, доступ к которому можно получить с помощью различных функций. Это помогает нам получить доступ к различным полям местной метки времени, таким как год, час, секунды и т. д.
Класс struct_time состоит из следующих атрибутов:
- tm_year: возвращает год по местному времени.
- tm_hour: возвращает час конкретного местного времени.
- tm_min: возвращает значение минут определенного местного времени.
- tm_sec: возвращает значение секунд определенного местного времени.
- tm_mon: возвращает месяц по местному времени.
- tm_mday: возвращает дату месяца по местному времени.
- tm_wday: возвращает значение дней недели, т.е. с 0 понедельника по 6 воскресенье.
- tm_yday: возвращает номер конкретного дня в диапазоне от 1 до 366.
Функция time.localtime() запускает функцию time.time() в серверной части и возвращает детали текущего времени в формате класса struct_time по местному времени.
Мы также можем передать количество секунд с начала эпохи в качестве аргумента функции.
4 метод time.ctime()
Метод time.ctime() принимает значение секунд с начала или результат функции time() в качестве аргумента и возвращает строковое значение, представляющее текущее местное время.
5 Метод time.mktime()
Метод time.mktime() является обратным методу time.localtime().
Он принимает struct_time (все кортежи класса struct_time) в качестве аргумента и возвращает время в секундах, которое прошло с начала.
В приведенном выше примере мы использовали метод locatime() для получения кортежей класса struct_time и передали его методу mktime().