Python Datetime: работа с датами и временем
Узнайте, как обрабатывать даты, время, часовые пояса и вычисления в Python. Освойте форматирование, синтаксический анализ и арифметику с использованием datetime и timedelta.
Обзор
Обработка дат и времени является общеизвестной проблемой при разработке программного обеспечения из-за високосных лет, корректировок перехода на летнее время и различных форматов часовых поясов. Python решает эти проблемы с помощью встроенного модуля datetime. Этот модуль предоставляет надежный набор классов объектов, таких как «дата», «время», «дата-время» и «часовой пояс», которые четко представляют временные данные и манипулируют ими, упрощая вычисления дат.
Одной из наиболее распространенных задач является преобразование дат в строки (форматирование) и строк в даты (синтаксический анализ). Python использует для этого два основных метода: `.strftime()` (время формата строки) преобразует объект datetime в читаемую строку с использованием кодов форматирования (например, `%Y` для года, `%m` для месяца и `%d` для дня). И наоборот, `datetime.strptime()` (время анализа строки) анализирует входную необработанную строку в объект datetime на основе соответствующего шаблона формата, что жизненно важно при чтении журналов или входных данных API.
Выполнение математических вычислений с датами также полностью поддерживается с использованием объекта timedelta. «Timedelta» представляет продолжительность времени (например, 7 дней, 4 часа). Вы можете добавить или вычесть «timedelta» из «datetime», чтобы вычислить прошлые или будущие даты (например, для определения даты истечения срока действия). При работе с несколькими часовыми поясами использование объектов, учитывающих часовой пояс (таких как «zoneinfo» или «timezone.utc»), имеет решающее значение для обеспечения точности сравнения дат в разных местоположениях серверов.
Код и вывод выполнения
Разбор строк в объекты datetime и вычисление будущих сроков с использованием timedelta.
from datetime import datetime, timedelta
# Define a specific fixed base date and time (for deterministic runs)
base_date = datetime(2026, 5, 25, 23, 45, 50)
print(f"Base Date/Time: {base_date}")
# Format datetime as string
formatted = base_date.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted String: {formatted}")
# Parse string to datetime
date_str = "2026-12-25"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
print(f"Parsed Date: {parsed_date}")
# Date arithmetic with timedelta
ten_days_later = base_date + timedelta(days=10)
print(f"Date 10 days later: {ten_days_later.strftime('%Y-%m-%d')}")Base Date/Time: 2026-05-25 23:45:50
Formatted String: 2026-05-25 23:45:50
Parsed Date: 2026-12-25 00:00:00
Date 10 days later: 2026-06-04Пошаговая реализация
- Расчет срока действия пробной версии и дат выставления счетов
- Анализ строк временных меток в журналах доступа к серверу
- Планирование автоматических заданий cron или повторяющихся отчетов
Часто задаваемые вопросы
Что такое наивный и осведомленный объект datetime?
Наивный объект datetime не содержит информации о часовом поясе, тогда как осведомленный объект datetime включает смещения часового пояса, что делает его безопасным для расчетов международного времени.
Как рассчитать разницу между двумя датами?
Вычитание одного объекта datetime из другого возвращает объект timedelta, представляющий точную продолжительность между ними.
Связанные темы
Откройте для себя мощь встроенного математического модуля Python. Узнайте о тригонометрических функциях, логарифмах, методах округления и константах.
Разбор JSON PythonУзнайте, как читать, записывать и анализировать данные JSON в Python. Освойте json.loads, json.dumps и настройте кодеры/декодеры JSON.
Рекомендуемые ресурсы Python
Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.
Как преобразовать строку в дату и время в Python
Узнайте, как преобразовать строки в объекты datetime в Python. Освойте метод strptime, анализируйте строки даты, обрабатывайте часовые пояса и предотвращайте ошибки формата.
Шпаргалка по форматированию DateTime в Python
Узнайте, как анализировать и форматировать дату и время в Python, используя datetime, strftime и strptime.
Python против JavaScript: какой язык программирования лучше?
Всестороннее сравнение Python и JavaScript. Изучите синтаксические различия, производительность, варианты использования (серверная и клиентская части) и примеры кодирования.