Форматирование даты "вчера" в Python: учёт месяцев и високосных
Быстрый ответ
Вот небольшой код на Python, позволяющий получить дату предыдущего дня:
from datetime import datetime, timedelta
print((datetime.now() – timedelta(1)).strftime('%Y-%m-%d'))
Данный код выводит дату предыдущего дня в формате ГГГГ-ММ-ДД.
Работа с различными форматами дат
Хорошо! Но иногда требуются разные форматы. Давайте рассмотрим, как получить дату предыдущего дня в формате ММ-ДД-ГГ:
yesterday_format_mmddyy = (datetime.now() – timedelta(days=1)).strftime('%m-%d-%y') # Обновлённое решение!
print(yesterday_format_mmddyy)
Теперь вчерашний день отображается как ММ-ДД-ГГ. Обратите внимание на %y
– это указывает на сокращённый вид года до двух цифр. Если требуется полная запись года, используется %Y
.
Учёт високосных годов и продолжительности месяцев
Модуль datetime
в Python прекрасно справляется с календарными задачами! Будь то високосный год или различная длина месяцев, он всё это учесть при расчёте даты предыдущего дня.
Совместимость с Python 2
Несмотря на свой возраст, Python 2 остается актуален! Вот пример кода для этой версии:
from datetime import datetime, timedelta
yesterday = datetime.now() – timedelta(days=1)
print yesterday.strftime('%Y-%m-%d') # Простой print без скобок, в духе старых времён
Визуализация
Вот так мы «формируем» дату предыдущего дня в Python:
📅➡️🕰️↩️🗓️ *Бип-буп!* Идёт получение даты предыдущего дня...
Формирование завершено:
from datetime import datetime, timedelta
yesterday = datetime.now() – timedelta(days=1)
formatted_yesterday = yesterday.strftime('%Y-%m-%d') # Получается хрустящей и ароматной!
И вот результат:
Сегодня: [📅]
Вчера:🕰️🔄 [🗓️: **formatted_yesterday**]
Следующий шаг: эффективное управление датой предыдущего дня
Отлично, теперь у нас есть дата предыдущего дня. Но давайте пойдём дальше и разберёмся, как её можно эффективно управлять и использовать.
Работа с часовыми поясами
Так же как в кулинарии, так и в программировании география играет важную роль. Часовые пояса могут вносить коррективы в расчёт времени. Для точности используйте pytz
или dateutil
.
Сравнение дат
Сравниваете дату предыдущего дня с другой датой? Вашими помощниками станут операторы сравнения типа ==
, <
, >
– это просто и надёжно!
Преобразование строк обратно в даты
Нужно преобразовать строку обратно в объект datetime? Нет проблем! Для этого существует datetime.strptime
:
from datetime import datetime
date_string = "04-05-23"
date_object = datetime.strptime(date_string, '%m-%d-%y') # Обратное преобразование в магические даты
Сериализация
Передача дат между системами или их сохранение требует сериализации. Преобразуйте их в строки или используйте формат ISO 8601 с помощью datetime.isoformat()
для гарантии совместимости.
Полезные материалы
- datetime — Основные типы даты и времени — Документация Python 3.12.2
- Справочная шпаргалка по strftime для Python
- dateutil – мощные расширения для datetime — документация dateutil 2.8.2
- python – подсчет каждого значения в списке кортежей – Stack Overflow
- Arrow: улучшенное управление датами и временем в Python — документация Arrow 🏹 1.3.0
- Использование модуля datetime в Python для работы с датами и временем – Real Python
- Функционал временных рядов и дат — документация pandas 2.2.0