Получение и преобразование времени в Python: от базовых функций до учета часовых зон

Раздел: 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)

Проблема: число может быть большим и неудобным для чтения. Решение: преобразовать в структурированный формат с помощью time.localtime() или datetime.fromtimestamp().

Как создать объект времени без даты (только часы, минуты, секунды)?

Класс datetime.time предназначен для представления времени суток. При создании задаются часы, минуты, секунды и микросекунды (опционально).

from datetime import time
t = time(14, 30, 0)
print(t)

Python определить время (определение времени в python)

14:30:00

Python время года (определение времени года по дате в python)

Ошибка: если передать некорректные значения (например, час 25), возникнет ValueError. Следует проверять входные данные.

Как преобразовать строку с датой и временем в объект 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)

Типичная ошибка: несоответствие строки шаблону (лишние пробелы, другой разделитель) вызывает ValueError. Рекомендуется предварительно очищать строку и использовать неизменяемые разделители, или использовать библиотеки типа dateutil для гибкого парсинга.

Как измерить время выполнения участка кода?

Для точных замеров производительности используется 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)

Неправильно использовать time.time() для малых интервалов из-за возможного низкого разрешения. perf_counter обеспечивает наилучшее разрешение для коротких промежутков.

Как работать с часовыми поясами при определении времени?

В 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
Путаница с IANA-именами зон (например, "Moscow" вместо "Europe/Moscow") приводит к KeyError. Имена следует брать из стандартного списка.

Расширенные примеры работы со временем

Пример 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

Определение времени в Python - comments

En
Python определить время (python)