Освоение модуля time в Python: функции, структуры и практические примеры
Модуль time в Python
Изучите стандартный модуль time в Python, его основные функции и наглядные примеры для реального использования.
Модуль time Python предоставляет инструменты для работы с временными метками, планированием и измерением затраченного времени. Перед использованием любой функции импортируйте модуль:
import time
time.time()
Функция time() возвращает текущее время в секундах с начала эпохи Unix (00:00:00 UTC 1 января 1970 года). В Unix-подобных системах это значение фиксировано; в Windows оно также отсчитывается от той же точки.
import time
seconds = time.time()
print("Секунды с эпохи =", seconds)
time.ctime()
Преобразует временную метку POSIX (секунды с эпохи) в читаемую строку в локальном часовом поясе.
import time
seconds = 1545925769.9618232
local_time = time.ctime(seconds)
print("Локальное время:", local_time)
Типичный вывод:
Локальное время: Thu Dec 27 15:49:29 2018
time.sleep()
Приостанавливает выполнение текущего потока на указанное количество секунд.
import time
print("Это выводится сразу.")
time.sleep(2.4)
print("Это выводится через 2.4 секунды.")
Подробнее см. в документации Python по sleep().
Класс time.struct_time
Функции вроде gmtime() и asctime() возвращают или принимают объект time.struct_time — именованный кортеж из 9 элементов, представляющий календарное время.
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=6, tm_min=35, tm_sec=17, tm_wday=3, tm_yday=361, tm_isdst=0)
| Индекс | Атрибут | Значения |
|---|---|---|
| 0 | tm_year | 0000 … 9999 |
| 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 |
| 6 | tm_wday | 0 (Пн) … 6 (Вс) |
| 7 | tm_yday | 1 … 366 |
| 8 | tm_isdst | 0, 1 или -1 |
Доступ к элементам можно получить как по индексу, так и по имени атрибута.
time.localtime()
Преобразует временную метку POSIX в struct_time, выраженное в локальном часовом поясе. Если аргумент опущен, используется текущее время.
import time
result = time.localtime(1545925769)
print("result:", result)
print("\nГод:", result.tm_year)
print("Час:", result.tm_hour)
Типичный вывод:
result: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) Год: 2018 Час: 15
time.gmtime()
Аналогично localtime(), но возвращает время UTC (GMT). Пропущенный аргумент по умолчанию равен текущему значению эпохи.
import time
result = time.gmtime(1545925769)
print("result:", result)
print("\nГод:", result.tm_year)
print("Час:", result.tm_hour)
Типичный вывод:
result: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=28, tm_hour=8, tm_min=44, tm_sec=4, tm_wday=4, tm_yday=362, tm_isdst=0) Год: 2018 Час: 8
time.mktime()
Преобразует локальный struct_time (или его 9-кортеж) обратно в временную метку POSIX. Это фактически обратная операция к localtime().
import time
t = (2018, 12, 28, 8, 44, 4, 4, 362, 0)
local_time = time.mktime(t)
print("Локальное время:", local_time)
Пример обратного преобразования:
import time
seconds = 1545925769
t = time.localtime(seconds)
print("t1:", t)
s = time.mktime(t)
print("\ns:", s)
Типичный вывод:
t1: time.struct_time(tm_year=2018, tm_mon=12, tm_mday=27, tm_hour=15, tm_min=49, tm_sec=29, tm_wday=3, tm_yday=361, tm_isdst=0) s: 1545925769.0
time.asctime()
Форматирует struct_time (или кортеж) в читаемую строку.
import time
t = (2018, 12, 28, 8, 44, 4, 4, 362, 0)
result = time.asctime(t)
print("Результат:", result)
Типичный вывод:
Результат: Fri Dec 28 08:44:04 2018
time.strftime()
Форматирует struct_time в пользовательскую строку на основе кодов форматирования.
import time
named_tuple = time.localtime()
time_string = time.strftime("%m/%d/%Y, %H:%M:%S", named_tuple)
print(time_string)
Типичный вывод:
12/28/2018, 09:47:41
Часто используемые коды форматирования:
%Y— полный год (например, 2018)%m— месяц 01–12%d— день 01–31%H— час 00–23%M— минута 00–59%S— секунда 00–61 (високосные секунды)
Для полного списка кодов см. документацию time.strftime().
time.strptime()
Разбирает строку согласно указанному формату и возвращает struct_time.
import time
time_string = "21 June, 2018"
result = time.strptime(time_string, "%d %B, %Y")
print(result)
Типичный вывод:
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=172, tm_isdst=-1)
Python
- Ключевые слова и идентификаторы в Python: мастерство зарезервированных слов и соглашений об именовании
- Освоение типов данных в Python: практическое руководство
- Мастерство операторов Python: Полное руководство
- Аргументы функций в Python: позиционные, именованные и параметры по умолчанию
- Модули в Python: создание, импорт и продвинутое использование
- Словари в Python: создание, манипуляции и продвинутые техники
- Регулярные выражения в Python (модуль re) — практическое руководство
- Получение текущей даты и времени в Python: практическое руководство
- Python: получение текущего времени и работы с часовыми поясами
- Освоение Python time.sleep(): лучшие практики, многопоточность и реальные примеры