Что такое модуль time в Python. Как использовать основные функции модуля time. Как работать с временем и датами в Python. Какие возможности предоставляет модуль time для обработки временных данных.
Основные функции модуля time в Python
Модуль time в Python предоставляет различные функции для работы со временем. Рассмотрим наиболее важные из них:
- time.time() — возвращает текущее время в секундах с начала эпохи
- time.sleep() — приостанавливает выполнение программы на заданное количество секунд
- time.ctime() — преобразует время в секундах в строковое представление
- time.localtime() — возвращает объект struct_time с локальным временем
- time.gmtime() — возвращает объект struct_time с UTC временем
- time.strftime() — форматирует время в строку по заданному шаблону
- time.strptime() — преобразует строку времени в объект struct_time
Работа с текущим временем в Python
Одна из самых часто используемых функций модуля time — получение текущего времени. Для этого применяется функция time.time():

import time
current_time = time.time()
print(f"Текущее время в секундах с начала эпохи: {current_time}")
Это вернет число секунд, прошедших с 1 января 1970 года (начало эпохи Unix). Для получения текущего времени в более удобном формате можно использовать функцию ctime():
import time
current_time_string = time.ctime()
print(f"Текущее время: {current_time_string}")
Форматирование времени в Python
Модуль time позволяет гибко форматировать время с помощью функции strftime(). Как это работает?
import time
current_time = time.localtime()
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", current_time)
print(f"Отформатированное время: {formatted_time}")
Здесь «%Y-%m-%d %H:%M:%S» — это строка формата, где:
- %Y — год в 4-значном формате
- %m — месяц в виде числа
- %d — день месяца
- %H — час в 24-часовом формате
- %M — минуты
- %S — секунды
Измерение времени выполнения кода в Python
Модуль time удобно использовать для измерения времени выполнения участков кода. Рассмотрим пример:
import time
start_time = time.time()
# Здесь выполняется код, время которого нужно измерить
for i in range(1000000):
pass
end_time = time.time()
execution_time = end_time - start_time
print(f"Время выполнения: {execution_time} секунд")
Работа с часовыми поясами в Python
Модуль time предоставляет функции для работы с UTC и локальным временем. Как это можно использовать?

import time # Получение текущего времени в UTC utc_time = time.gmtime() print(f"Текущее время UTC: {time.strftime('%Y-%m-%d %H:%M:%S', utc_time)}") # Получение локального времени local_time = time.localtime() print(f"Локальное время: {time.strftime('%Y-%m-%d %H:%M:%S', local_time)}")
Приостановка выполнения программы в Python
Функция time.sleep() позволяет приостановить выполнение программы на заданное количество секунд. Как это применить на практике?
import time
print("Начало программы")
time.sleep(3) # Приостановка на 3 секунды
print("Прошло 3 секунды")
Парсинг строк времени в Python
Функция strptime() модуля time позволяет преобразовывать строки времени в объекты struct_time. Как это работает?
import time
time_string = "21 June, 2023"
parsed_time = time.strptime(time_string, "%d %B, %Y")
print(f"Распаршенное время: {parsed_time}")
В этом примере «%d %B, %Y» — это строка формата, которая указывает, как интерпретировать входную строку времени.
Преимущества использования модуля time
Модуль time в Python имеет ряд преимуществ:

- Простота использования — базовые операции со временем выполняются легко
- Кроссплатформенность — работает одинаково на разных операционных системах
- Встроенный модуль — не требует дополнительной установки
- Высокая производительность — оптимизирован для быстрой работы
Ограничения модуля time
При этом модуль time имеет некоторые ограничения:
- Ограниченная точность на некоторых системах
- Отсутствие встроенной поддержки часовых поясов
- Ограниченные возможности для сложных операций с датами
Для более сложных задач обработки времени и дат рекомендуется использовать модуль datetime.
Сравнение модулей time и datetime
Чем отличаются модули time и datetime в Python?
- time фокусируется на работе с временем, datetime — на работе с датами и временем
- datetime предоставляет более широкий набор функций для манипуляций с датами
- time работает с временем в секундах, datetime — с объектами даты и времени
- datetime имеет встроенную поддержку часовых поясов
Выбор между time и datetime зависит от конкретной задачи и требуемой функциональности.

Работа с временными метками в Python
Временные метки (timestamps) часто используются в программировании. Как работать с ними с помощью модуля time?
import time
# Получение текущей временной метки
current_timestamp = time.time()
# Преобразование временной метки в читаемый формат
readable_time = time.ctime(current_timestamp)
print(f"Текущая временная метка: {current_timestamp}")
print(f"Читаемое время: {readable_time}")
Использование модуля time в многопоточных приложениях
При работе с многопоточными приложениями важно учитывать особенности использования модуля time. Как правильно применять time.sleep() в многопоточной среде?
import time
import threading
def worker():
print(f"Поток {threading.current_thread().name} начал работу")
time.sleep(2)
print(f"Поток {threading.current_thread().name} завершил работу")
threads = []
for i in range(3):
t = threading.Thread(target=worker)
threads.append(t)
t.start()
for t in threads:
t.join()
print("Все потоки завершили работу")
В этом примере time.sleep() используется для имитации работы в каждом потоке. Важно помнить, что time.sleep() блокирует только текущий поток, позволяя другим потокам продолжать выполнение.

Локализация времени с помощью модуля time
Модуль time предоставляет возможности для локализации времени. Как это можно использовать?
import time
import locale
# Установка локали
locale.setlocale(locale.LC_TIME, 'ru_RU.UTF-8')
current_time = time.localtime()
formatted_time = time.strftime("%A, %d %B %Y", current_time)
print(f"Локализованное время: {formatted_time}")
Этот код выведет дату на русском языке, используя установленную локаль. Обратите внимание, что доступность конкретных локалей зависит от системы.
Обработка ошибок при работе со временем
При работе с функциями модуля time могут возникать различные ошибки. Как их правильно обрабатывать?
import time
try:
# Попытка разобрать некорректную строку времени
parsed_time = time.strptime("32/13/2023", "%d/%m/%Y")
except ValueError as e:
print(f"Ошибка при разборе времени: {e}")
try:
# Попытка использовать отрицательное значение в time.sleep()
time.sleep(-1)
except ValueError as e:
print(f"Ошибка при использовании time.sleep(): {e}")
Правильная обработка ошибок позволяет создавать более надежные приложения, устойчивые к некорректным входным данным и неожиданным ситуациям.

Оптимизация работы с временем в Python
При интенсивной работе со временем в Python важно учитывать производительность. Какие методы можно использовать для оптимизации?
- Используйте time.monotonic() вместо time.time() для измерения интервалов времени, так как он не подвержен изменениям системного времени
- Избегайте частых вызовов time.sleep() с малыми значениями, это может привести к неэффективному использованию процессора
- При необходимости частого форматирования времени, создайте шаблон один раз и переиспользуйте его
- Для высокоточных измерений времени рассмотрите использование time.perf_counter()
import time
# Оптимизированное измерение времени выполнения
start = time.monotonic()
# Выполнение кода
end = time.monotonic()
print(f"Время выполнения: {end - start} секунд")
# Переиспользование шаблона форматирования
time_format = "%Y-%m-%d %H:%M:%S"
for _ in range(1000):
formatted_time = time.strftime(time_format, time.localtime())
Применение этих методов может значительно улучшить производительность программ, интенсивно работающих со временем.

Модуль time | Python 3 для начинающих и чайников
Time — модуль для работы со временем в Python.
time.altzone — смещение DST часового пояса в секундах к западу от нулевого меридиана. Если часовой пояс находится восточнее, смещение отрицательно.
time.asctime([t]) — преобразовывает кортеж или struct_time в строку вида «Thu Sep 27 16:42:37 2012». Если аргумент не указан, используется текущее время.
time.clock() — в Unix, возвращает текущее время. В Windows, возвращает время, прошедшее с момента первого вызова данной функции.
time.ctime([сек]) — преобразует время, выраженное в секундах с начала эпохи в строку вида «Thu Sep 27 16:42:37 2012».
time.daylight — не 0, если определено, зимнее время или летнее (DST).
time.gmtime([сек]) — преобразует время, выраженное в секундах с начала эпохи в struct_time, где DST флаг всегда равен нулю.
time.localtime([сек]) — как gmtime, но с DST флагом.
time. mktime(t) — преобразует кортеж или struct_time в число секунд с начала эпохи. Обратна функции time.localtime.
time.sleep(сек) — приостановить выполнение программы на заданное количество секунд.
time.strftime(формат, [t]) — преобразует кортеж или struct_time в строку по формату:
Формат | Значение |
---|---|
%a | Сокращенное название дня недели |
%A | Полное название дня недели |
%b | Сокращенное название месяца |
%B | Полное название месяца |
%c | Дата и время |
%d | День месяца [01,31] |
%H | Час (24-часовой формат) [00,23] |
%I | Час (12-часовой формат) [01,12] |
%j | День года [001,366] |
%m | Номер месяца [01,12] |
%M | Число минут [00,59] |
%p | До полудня или после (при 12-часовом формате) |
%S | Число секунд [00,61] |
%U | Номер недели в году (нулевая неделя начинается с воскресенья) [00,53] |
%w | Номер дня недели [0(Sunday),6] |
%W | Номер недели в году (нулевая неделя начинается с понедельника) [00,53] |
%x | Дата |
%X | Время |
%y | Год без века [00,99] |
%Y | Год с веком |
%Z | Временная зона |
%% | Знак ‘%’ |
time. strptime(строка [, формат]) — разбор строки, представляющей время в соответствии с форматом. Возвращаемое значение struct_time. Формат по умолчанию: «%a %b %d %H:%M:%S %Y».
Класс time.struct_time — тип последовательности значения времени. Имеет интерфейс кортежа. Можно обращаться по индексу или по имени.
- tm_year
- tm_mon
- tm_mday
- tm_hour
- tm_min
- tm_sec
- tm_wday
- tm_yday
- tm_isdst
time.time() — время, выраженное в секундах с начала эпохи.
time.timezone — смещение местного часового пояса в секундах к западу от нулевого меридиана. Если часовой пояс находится восточнее, смещение отрицательно.
time.tzname — кортеж из двух строк: первая — имя DST часового пояса, второй — имя местного часового пояса.
Для вставки кода на Python в комментарий заключайте его в теги <pre><code>Ваш код</code></pre>
Модуль time в Python, реальное время ОС.

Модуль time
предоставляет доступ к нескольким различным типам часов, каждый из которых используется для разных целей:
- Стандартные системные вызовы типа
time.time()
сообщают системное время в секундах с начала «эпохи». - Монотонные часы
time.monotonic()
можно использовать для измерения прошедшего времени в каком то длительном процессе, т.к. функция не зависит от настроек системного времени и гарантирует, что никогда не передвинется назад, даже если системное время изменилось. - Для тестирования производительности модуль предоставляет доступ к часам с максимально высоким разрешением
time.perf_counter()
, чтобы сделать измерения короткого времени более точными. - Функция
time.process_time()
возвращает объединенное время процессора и системное время.
Хотя этот модуль всегда доступен, на некоторых платформах доступны не все функции. Большинство функций, определенных в этом модуле, вызывают библиотечные функции языка C с тем же именем. Семантика этих функций варьируется в зависимости от платформы, по этому будет полезно ознакомиться с документацией вашей платформы.
Объяснение некоторых терминов и соглашений:
Используйте следующие функции для преобразования между представлениями времени:
Из формата | В формат | Функция |
Секунды эпохи | time.struct_time в UTC | time.gmtime() |
Секунды эпохи | time.struct_time в местном времени | time.localtime() |
time.struct_time в UTC | Секунды эпохи | calendar.timegm() |
time.struct_time в местном времени | Секунды эпохи | time.mktime() |
>>> import time >>> sec_utc = time.time() >>> sec_utc # 1587728179.4579966 # переводим из секунд в 'struct_time' >>> time_utc = time.gmtime(sec_utc) >>> time_utc # time.struct_time(tm_year=2020, tm_mon=4, # tm_mday=24, tm_hour=11, tm_min=36, tm_sec=19, # tm_wday=4, tm_yday=115, tm_isdst=0) # Локальное время получаем сразу в 'struct_time' >>> time_local = time.localtime() # time.struct_time(tm_year=2020, tm_mon=4, # tm_mday=24, tm_hour=14, tm_min=36, tm_sec=40, # tm_wday=4, tm_yday=115, tm_isdst=0) # получаем форматированную строку из 'struct_time' >>> time.strftime('%d.%m.%Y г. %H часов %M мин. %S сек.', time_utc) # '24.04.2020 г. 11 часов 36 мин. 19 сек.' >>> time.strftime('%d.%m.%Y г. %H часов %M мин. %S сек.', time_local) # '24.04.2020 г. 14 часов 36 мин. 40 сек.' # теперь получим из строки со временем - структуру 'struct_time' >>> struct_time = time.strptime('10/10/2020 10:15', '%d/%m/%Y %H:%M') # time.struct_time(tm_year=2020, tm_mon=10, # tm_mday=10, tm_hour=10, tm_min=15, tm_sec=0, # tm_wday=5, tm_yday=284, tm_isdst=-1) # переведем 'struct_time' в секунды "эпохи" >>> time.
mktime(struct_time) # 1602314100.0
Для получения дополнительной информации смотрите также модули datetime
и calendar
.
Функция Python sleep() (с примерами)
В этом руководстве мы узнаем о функции sleep() с помощью примеров.
В Python есть модуль time, который предоставляет несколько полезных методов для обработки задач, связанных со временем. Одним из самых популярных среди них является sleep()
.
Метод sleep()
приостанавливает выполнение текущего потока на заданное количество секунд.
Пример 1. Метод Python sleep()
время импорта print("Печатается немедленно.") время сна (2.4) print("Напечатано через 2,4 секунды")
Вывод
Немедленно печатается. Напечатано через 2,4 секунды.
Вот как работает эта программа:
-
"Печать сразу"
печатается -
time.sleep(2.4)
приостанавливает выполнение на 2,4 секунды. -
"Напечатано через 2,4 секунды"
печатается.
До Python 3.5 фактическое время приостановки может быть меньше, чем аргумент, указанный в функции time()
.
Начиная с Python 3.5 , время приостановки будет составлять не менее указанных секунд.
Создание цифровых часов в Python
время импорта пока верно: местное время = время.местное время() результат = time.strftime("%I:%M:%S %p", местное время) печать (результат) time.sleep(1)
Выход
14:10:50 14:10:51 14:10:52 14:10:53 14:10:54 ... ... ...
В приведенном выше примере мы вычислили и распечатали текущее местное время внутри бесконечного цикла while.
Затем программа ждет 1 секунд. Опять же, текущее местное время вычисляется и печатается. Этот процесс продолжается.
Чтобы узнать больше, посетите цифровые часы в оболочке Python.
Многопоточность в Python
Прежде чем говорить о методе sleep()
в многопоточных программах, давайте поговорим о процессах и потоках.
Компьютерная программа представляет собой набор инструкций. Процесс — это выполнение этих инструкций.
Поток — это подмножество процесса. Процесс может иметь один или несколько потоков.
Пример 3. Многопоточность Python
Все программы, приведенные выше в этой статье, являются однопоточными программами. Вот пример многопоточной программы Python.
импортная резьба защита print_hello_three_times(): для я в диапазоне (3): распечатать("Привет") защита print_hi_three_times(): для я в диапазоне (3): распечатать("Привет") t1 = threading.Thread(target=print_hello_three_times) t2 = threading.Thread(target=print_hi_three_times) t1.старт() t2.start()
Выход
Привет Привет Привет Привет Привет Hi
В приведенном выше примере есть два потока t1 и t2 . Эти потоки запускаются с использованием операторов
t1.start()
и t2.start()
.
Обратите внимание, что t1 и t2 выполняются одновременно, и мы можем получить разные результаты.
Чтобы узнать больше о многопоточности, посетите Многопоточность в Python.
Python time.sleep() в многопоточных программах
В случае однопоточных программ sleep()
приостанавливает выполнение потока и процесса.
Однако этот метод приостанавливает поток, а не весь процесс в многопоточных программах.
Пример 4: sleep() в многопоточной программе
import threading время импорта защита print_hello(): для я в диапазоне (4): время сна (0,5) распечатать("Привет") защита print_hi(): для я в диапазоне (4): время сна (0,7) распечатать("Привет") t1 = threading.Thread (цель = print_hello) t2 = threading.Thread(target=print_hi) t1.старт() t2.start()
Выход
Привет Привет Привет Привет Привет Привет Привет Привет
Вышеупомянутая программа имеет два потока. Мы использовали
time.sleep(0,5)
и time.sleep(0,75)
, чтобы приостановить выполнение этих двух потоков на 0,5 секунд и 0,7 секунд соответственно.
Рекомендуемая литература: Python time.sleep() усыпляет поток
Модуль времени Python — GeeksforGeeks
В этой статье мы обсудим модуль времени и различные функции, предоставляемые этим модулем, с помощью хороших примеров.
Как следует из названия, модуль времени Python позволяет работать со временем в Python. Он позволяет выполнять такие функции, как получение текущего времени, приостановка выполнения программы и т. д. Поэтому, прежде чем начать работу с этим модулем, нам необходимо его импортировать.
Импорт модуля времени
Модуль времени поставляется со стандартным служебным модулем Python, поэтому нет необходимости устанавливать его извне. Мы можем просто импортировать его, используя оператор импорта.
время импорта
Что такое эпоха?
Эпоха — это точка начала отсчета времени, зависящая от платформы. В Windows и большинстве систем Unix эпоха — 1 января 1970 года, 00:00:00 (UTC), а дополнительные секунды не учитываются во времени в секундах с начала эпохи. Чтобы проверить, какая эпоха на данной платформе, мы можем использовать time.gmtime(0).
Пример: Получение эпохи
Python3
|
Выход:
Время. 0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
Из приведенного выше примера видно, что эпоха приходится на 1 января 1970 года. Это означает, что 2 января 1970 года можно выразить как 86400 секунд с начала эпохи так как в сутках 86400 секунд.
Примечание: Время до начала эпохи по-прежнему можно представить в секундах, но оно будет отрицательным. Например, 31 декабря 1969 будет представлено как -86400 секунд.
Получение текущего времени в секундах с начала эпохи
Методы time.time() возвращают текущее время в секундах с начала эпохи. Он возвращает число с плавающей запятой.
Example: Current time in seconds since epoch
Python3
|
Выход
Время в секунде777.7663993
. Время с тех пор 9277.7663993. Время. Функция time.ctime() возвращает строку времени из 24 символов, но принимает секунды в качестве аргумента и вычисляет время до указанных секунд.Если аргумент не передан, время рассчитывается до настоящего времени.
Example: Getting time string from seconds
Python3
|
Выход
Текущее время: Пн Авг 51 3:21 4 2 12 120016Задержка выполнения программ
Выполнение может быть отложено с помощью метода time.sleep(). Этот метод используется для остановки выполнения программы на время, указанное в аргументах.
Пример: Задержка выполнения программ на Python.
![]()
Python3
0 1 2 3 time.struct_time ClassКласс Struct_time помогает получить доступ к локальному времени, т. е. к неэпохальным временным меткам. Он возвращает именованный кортеж, к значению которого можно получить доступ как по индексу, так и по имени атрибута. Его объект содержит следующие атрибуты –
This class contains various functions. метод time.localtime()метод localtime() возвращает объект struct_time по местному времени. В качестве аргумента принимает количество секунд, прошедших с эпохи. Если параметр секунд не задан, используется текущее время, возвращаемое методом time.time(). Example: Getting local time from epoch Python3
Выход
метод time.![]() time.mktime() является обратной функцией time.localtime(), которая преобразует время, выраженное в секундах, начиная с эпохи, в объект time.struct_time по местному времени. Example: Converting the struct_time object to seconds since epoch Python3
Вывод Местное время (в секундах): 1627987508.0 Метод time.gmtime() объект в формате UTC, в котором атрибут tm_isdst всегда равен 0. Если параметр секунд не задан, используется текущее время, возвращаемое методом time.![]() Пример: ИСПОЛЬЗОВАНИЕ ВРЕМЕНИ. |
Выход
Время. =8, tm_wday=1, tm_yday=215, tm_isdst=0)
Метод time.strftime()
Функция time.strftime() преобразует кортеж или struct_time, представляющий время, возвращаемое функциями gmtime() или localtime(), в строку, указанную аргументом формата. Если t не указан, используется текущее время, возвращаемое функцией localtime(). Формат должен быть строкой. ValueError возникает, если какое-либо поле в t находится за пределами допустимого диапазона.
Пример: Преобразование объекта struct_time в строку с использованием метода strftime()
Python3
![]() , |
Output
Вт, 03 августа 2021 г. 10:45:08
метод time.asctime()
метод time.asctime() используется для преобразования кортежа или объекта time.struct_time, представляющего время, возвращаемое функцией time.gmtime() или time.localtime() в строку следующего вида:
Day Mon Date Hour:Min:Sec Year
Пример: Преобразование кортежа в объект time.struct_time в строку