
В Python для получения текущего времени чаще всего используются модули time и datetime. Модуль time предоставляет функции низкого уровня, такие как time.time() для получения метки времени в секундах с 1 января 1970 года. Это удобно при необходимости работать с таймерами или вычислять разницу между событиями.
Модуль datetime обеспечивает более высокоуровневое представление времени. Метод datetime.now() возвращает объект с точностью до микросекунд, позволяя сразу форматировать дату и время в нужном виде с помощью strftime(). Для работы с часовыми поясами применяются классы timezone и pytz, что важно при разработке приложений с международной аудиторией.
Получение системного времени с помощью модуля time

Модуль time предоставляет функции для работы с системным временем и таймерами. Для получения текущего времени используется функция time.time(), которая возвращает количество секунд, прошедших с 1 января 1970 года (эпоха Unix). Значение возвращается в формате float, где целая часть – секунды, дробная – миллисекунды.
Для преобразования секунд в структурированное представление применяется time.localtime(). Она возвращает объект struct_time с полями tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec и другими. Пример: time.localtime(time.time()) выдаёт текущую дату и время локальной системы.
Если требуется форматирование даты и времени в строку, используется time.strftime(). Например, time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) формирует строку вида 2025-09-12 14:30:45. Для обратного преобразования строки в объект времени применяется time.strptime().
Для временных измерений и задержек подходят функции time.sleep(secs) и time.perf_counter(). Первая приостанавливает выполнение программы на указанное количество секунд, вторая возвращает высокоточное время работы программы с момента запуска, полезное для профилирования кода.
Форматирование времени через strftime

Пример использования:
from datetime import datetime
now = datetime.now()
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted)
Основные спецификаторы:
| %Y | Год с четырьмя цифрами | 2025 |
| %y | Год с двумя цифрами | 25 |
| %m | Месяц от 01 до 12 | 09 |
| %d | День месяца от 01 до 31 | 12 |
| %H | Часы в 24-часовом формате от 00 до 23 | 14 |
| %I | Часы в 12-часовом формате от 01 до 12 | 02 |
| %M | Минуты от 00 до 59 | 37 |
| %S | Секунды от 00 до 59 | 08 |
| %p | AM или PM | PM |
| %A | Полное название дня недели | Пятница |
| %a | Краткое название дня недели | Пт |
| %B | Полное название месяца | Сентябрь |
| %b | Краткое название месяца | Сен |
Для комбинирования нескольких компонентов строки используют несколько спецификаторов в одной строке формата, например:
now.strftime("%A, %d %B %Y, %H:%M:%S") выдаст Пятница, 12 Сентябрь 2025, 14:37:08.
При работе с strftime важно учитывать локализацию. На системе с русской локалью названия месяцев и дней недели будут на русском, при другой локали – на соответствующем языке.
Для получения текущей даты и времени в Python используется метод datetime.now() из модуля datetime. Он возвращает объект datetime, содержащий информацию о годе, месяце, дне, часах, минутах, секундах и микросекундах.
Пример базового использования:
from datetime import datetime
current_time = datetime.now()
print(current_time)
print(current_time.date()) # 2025-09-12
print(current_time.time()) # 14:35:42.123456
formatted = current_time.strftime("%d.%m.%Y %H:%M")
print(formatted) # 12.09.2025 14:35
При работе с часовыми поясами рекомендуется использовать datetime.now(tz), передавая объект timezone, чтобы корректно учитывать смещение времени:
from datetime import timezone, timedelta
moscow_time = datetime.now(timezone(timedelta(hours=3)))
print(moscow_time)
Использование datetime.now() удобно для логирования, отметки времени событий и генерации меток для файлов, где важно точное время с микросекундами.
Использование timestamp для отображения времени
Timestamp в Python представляет собой количество секунд, прошедших с 1 января 1970 года (эпоха UNIX). Основный инструмент работы с ним – модуль time. Функция time.time() возвращает текущее время в виде float, включая доли секунды.
Для преобразования timestamp в читаемую форму используется time.localtime() или time.gmtime(). Например, time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts)) формирует строку с годом, месяцем, днем, часом, минутой и секундой.
Для обратного преобразования из datetime в timestamp применяется datetime.timestamp(). Это позволяет сохранять и передавать время в числовом формате для логов, базы данных или API.
Рекомендовано использовать float-значение timestamp для точных вычислений интервалов времени. Для округления до секунд применяется int(time.time()). Для работы с часовыми поясами рекомендуется модуль datetime с объектами timezone, чтобы корректно конвертировать timestamp в локальное время.
Timestamp также удобен для сортировки событий по времени, сравнения временных меток и вычисления длительности между событиями без преобразования в строки, что повышает производительность при обработке больших объемов данных.
Получение времени в UTC с datetime.utcnow()

Метод datetime.utcnow() возвращает текущие дату и время в формате UTC без информации о временной зоне. Результат – объект datetime, пригодный для вычислений и синхронизации между системами.
Пример использования:
from datetime import datetime
utc_now = datetime.utcnow()
print(utc_now)
Рекомендации и особенности:
- Объект не содержит
tzinfo; для привязки к UTC используйтеreplace(tzinfo=timezone.utc). - Для сохранения меток времени в базах данных и передачи между серверами лучше использовать UTC.
- Сравнение с локальным временем требует явного преобразования, иначе возможны ошибки.
- Для вычисления интервалов используйте
timedeltaили преобразование черезtimestamp(). - Поддерживает стандарт ISO 8601 при сериализации в строки.
Пример с привязкой к временной зоне:
from datetime import datetime, timezone
utc_now = datetime.utcnow().replace(tzinfo=timezone.utc)
print(utc_now)
Использование datetime.utcnow() обеспечивает единое время для логирования, синхронизации и обмена данными между различными регионами.
Сравнение локального и мирового времени

В Python для работы с временем используется модуль datetime. Локальное время отражает текущий часовой пояс системы, тогда как мировое время (UTC) фиксировано и не зависит от региона. Например, в Москве при UTC+3 локальное время на три часа опережает мировое.
Для получения локального времени применяется datetime.now(), а мирового – datetime.utcnow(). Разница между ними вычисляется через свойство tzinfo или вручную, используя timedelta. Это важно при планировании событий, обмене данными между серверами или работе с временными метками в базах данных.
При сохранении времени в базах данных рекомендуется использовать UTC. Локальное время удобно для отображения пользователю, но хранение в UTC упрощает пересчёт между часовыми поясами. Для конвертации UTC в локальное время применяется astimezone() с указанием целевого часового пояса, например:
local_time = datetime.utcnow().replace(tzinfo=timezone.utc).astimezone(tz=None)
Таким образом, точность и предсказуемость системных процессов достигается использованием UTC, а удобство интерфейсов – локального времени. Регулярная проверка соответствия локального и мирового времени предотвращает ошибки синхронизации и некорректные вычисления времени.
Добавление часов, минут и секунд к текущему времени
Для корректного изменения текущего времени в Python используется модуль datetime. Основной объект – datetime.datetime, который сочетает дату и время.
Добавление интервалов осуществляется через datetime.timedelta. Он поддерживает ключи hours, minutes и seconds.
- Импорт необходимых классов:
from datetime import datetime, timedelta - Получение текущего времени:
now = datetime.now() - Создание интервала для добавления:
delta = timedelta(hours=2, minutes=30, seconds=15)В этом примере к текущему времени прибавятся 2 часа, 30 минут и 15 секунд.
- Сложение времени с интервалом:
new_time = now + delta
Для извлечения отдельных компонентов результата используйте атрибуты:
new_time.hour– часыnew_time.minute– минутыnew_time.second– секунды
Если требуется вычесть время, достаточно использовать отрицательные значения в timedelta:
delta = timedelta(hours=-1, minutes=-20)
Комбинирование нескольких интервалов допустимо:
delta_total = timedelta(hours=1) + timedelta(minutes=45) + timedelta(seconds=30)
formatted = new_time.strftime("%H:%M:%S")
Такой подход обеспечивает точное и гибкое управление временем без необходимости вручную рассчитывать переносы часов, минут и секунд через границы суток.
Преобразование строкового времени обратно в объект datetime

Для преобразования строки с датой или временем в объект datetime используется метод strptime из модуля datetime. Этот метод требует точного соответствия формата строки и шаблона форматирования.
Пример для строки с датой и временем:
from datetime import datetime
time_str = "2025-09-12 14:30:00"
dt_object = datetime.strptime(time_str, "%Y-%m-%d %H:%M:%S")
Если строка содержит только дату, шаблон сокращается:
date_str = "2025-09-12"
dt_object = datetime.strptime(date_str, "%Y-%m-%d")
Для времени без даты можно использовать:
time_only = "14:30:00"
time_object = datetime.strptime(time_only, "%H:%M:%S").time()
Обратите внимание, что метод .time() возвращает объект time, а не полный datetime.
Рекомендации: используйте строгие шаблоны, чтобы избежать ошибок при разборе строк с разными разделителями или порядком элементов. Проверяйте исходные данные на корректность формата перед вызовом strptime, чтобы предотвратить ValueError.
Вопрос-ответ:
Как вывести текущее время в Python?
В Python для получения текущего времени можно использовать модуль datetime. Например, команда datetime.datetime.now() возвращает объект с текущей датой и временем. Чтобы вывести время в привычном формате, можно применить метод strftime, например: datetime.datetime.now().strftime("%H:%M:%S").
Чем отличается модуль time от datetime при выводе текущего времени?
Модуль time работает с отметками времени в секундах и предоставляет функции типа time.time() для получения текущего времени в формате UNIX timestamp. Модуль datetime более удобен для работы с объектами даты и времени, их форматирования и выполнения арифметики с датами. Для отображения времени в читаемом виде datetime обычно предпочтительнее.
Можно ли вывести текущее время с учётом часового пояса?
Да, для этого в модуле datetime есть поддержка временных зон через класс timezone или сторонние библиотеки, например pytz. Пример с datetime: datetime.datetime.now(datetime.timezone.utc) покажет время в UTC. Используя pytz, можно получить локальное время в любой временной зоне.
Как вывести только часы и минуты текущего времени?
Для отображения только часов и минут удобно применять метод strftime. Например: datetime.datetime.now().strftime("%H:%M") вернёт строку в формате «часы:минуты». Этот способ гибкий, так как можно настроить формат вывода практически любого компонента времени.
