Получение и преобразование времени в Python: от базовых функций до учета часовых зон
Определение времени в Python
Самый универсальный способ работы с временем в Python - это использование модуля datetime. Он предоставляет классы для работы с датами и временем. Для получения текущего момента используется метод datetime.now().
from datetime import datetime
current = datetime.now()
print(current)время создания python (время создания файла/объекта в python)
2025-03-25 14:32:10.567890
время сообщения python (время сообщения (метка времени) в python)
Результат содержит год, месяц, день, час, минуту, секунду и микросекунды. Такой объект позволяет извлекать отдельные компоненты (current.hour, current.minute), сравнивать времена, форматировать и выполнять арифметику с помощью timedelta.
Как получить время в виде вещественного числа секунд с начала эпохи Unix?
Модуль time предоставляет функцию time(), возвращающую текущее время в секундах с 1 января 1970 г. Это полезно для меток времени и вычисления разницы.
import time
timestamp = time.time()
print(timestamp)дата и время в python (работа с датой и временем в python)
1711391520.789012
модуль время python (модуль time в python)
Как создать объект времени без даты (только часы, минуты, секунды)?
Класс datetime.time предназначен для представления времени суток. При создании задаются часы, минуты, секунды и микросекунды (опционально).
from datetime import time
t = time(14, 30, 0)
print(t)Python определить время (определение времени в python)
14:30:00
Python время года (определение времени года по дате в python)
Как преобразовать строку с датой и временем в объект datetime?
Метод strptime из datetime позволяет парсить строку по заданному шаблону. Это часто требуется при чтении данных из файлов или пользовательского ввода.
from datetime import datetime
date_string = "25.03.2025 14:30:00"
dt = datetime.strptime(date_string, "%d.%m.%Y %H:%M:%S")
print(dt)Python реальное время (получение реального времени в python)
2025-03-25 14:30:00
время в секунды python (преобразование времени в секунды в python)
Как измерить время выполнения участка кода?
Для точных замеров производительности используется time.perf_counter() или timeit.
import time
start = time.perf_counter()
# какой-то код
time.sleep(0.5)
end = time.perf_counter()
print(f"Прошло {end - start:.3f} секунд")Python datetime время (работа с datetime в python)
Прошло 0.501 секунд
Python 3 время (работа с временем в python 3)
Как работать с часовыми поясами при определении времени?
В Python 3.9+ модуль zoneinfo (входит в стандартную библиотеку) позволяет создавать объекты с временной зоной. Для более старых версий используется pytz.
from datetime import datetime, timezone
from zoneinfo import ZoneInfo
dt_utc = datetime.now(timezone.utc)
dt_moscow = datetime.now(ZoneInfo("Europe/Moscow"))
print(dt_utc, dt_moscow)Python функция времени (функции для работы со временем в python)
2025-03-25 11:32:10.567890+00:00 2025-03-25 14:32:10.567890+03:00
Расширенные примеры работы со временем
Пример 1: Форматирование времени в пользовательские строки с помощью strftime.
from datetime import datetime
now = datetime.now()
# Различные форматы
print(now.strftime("%A, %d %B %Y %H:%M:%S"))
print(now.strftime("%Y-%m-%d %I:%M %p"))
print(now.strftime("Час: %H, минута: %M, секунда: %S"))Tuesday, 25 March 2025 14:32:10 2025-03-25 02:32 PM Час: 14, минута: 32, секунда: 10
Пример 2: Арифметика с временем (timedelta) - вычисление времени через определённый интервал.
from datetime import datetime, timedelta
now = datetime.now()
print(f"Сейчас: {now}")
# Через 2 часа 30 минут
future = now + timedelta(hours=2, minutes=30)
print(f"Через 2.5 часа: {future}")
# Разница между двумя временами
delta = future - now
print(f"Разница: {delta} (сек: {delta.total_seconds()})")Сейчас: 2025-03-25 14:32:10.567890 Через 2.5 часа: 2025-03-25 17:02:10.567890 Разница: 2:30:00 (сек: 9000.0)
Пример 3: Использование dateutil для гибкого парсинга (требуется установка).
# pip install python-dateutil
from dateutil import parser
dt = parser.parse("25 марта 2025, 14:30")
print(dt)
dt2 = parser.parse("2025-03-25T14:30:00Z")
print(dt2)2025-03-25 14:30:00 2025-03-25 14:30:00+00:00
Пример 4: Измерение времени с помощью timeit (для точных замеров).
import timeit
code_to_test = """
sum(range(1000))
"""
execution_time = timeit.timeit(code_to_test, number=10000)
print(f"Среднее время выполнения: {execution_time/10000:.6f} секунд")Среднее время выполнения: 0.000045 секунд
Пример 5: Работа с time.struct_time (кортеж времени).
import time
# Текущее время в локальной зоне
struct = time.localtime()
print(struct)
# Преобразование в строку
print(time.strftime("%Y-%m-%d %H:%M:%S", struct))time.struct_time(tm_year=2025, tm_mon=3, tm_mday=25, tm_hour=14, tm_min=32, tm_sec=10, tm_wday=1, tm_yday=84, tm_isdst=0) 2025-03-25 14:32:10