Форматирование даты "вчера" в Python: учёт месяцев и високосных

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Вот небольшой код на Python, позволяющий получить дату предыдущего дня:

Python
Скопировать код
from datetime import datetime, timedelta
print((datetime.now() – timedelta(1)).strftime('%Y-%m-%d'))

Данный код выводит дату предыдущего дня в формате ГГГГ-ММ-ДД.

Кинга Идем в IT: пошаговый план для смены профессии

Работа с различными форматами дат

Хорошо! Но иногда требуются разные форматы. Давайте рассмотрим, как получить дату предыдущего дня в формате ММ-ДД-ГГ:

Python
Скопировать код
yesterday_format_mmddyy = (datetime.now() – timedelta(days=1)).strftime('%m-%d-%y')  # Обновлённое решение!
print(yesterday_format_mmddyy)

Теперь вчерашний день отображается как ММ-ДД-ГГ. Обратите внимание на %y – это указывает на сокращённый вид года до двух цифр. Если требуется полная запись года, используется %Y.

Учёт високосных годов и продолжительности месяцев

Модуль datetime в Python прекрасно справляется с календарными задачами! Будь то високосный год или различная длина месяцев, он всё это учесть при расчёте даты предыдущего дня.

Совместимость с Python 2

Несмотря на свой возраст, Python 2 остается актуален! Вот пример кода для этой версии:

Python
Скопировать код
from datetime import datetime, timedelta
yesterday = datetime.now() – timedelta(days=1)
print yesterday.strftime('%Y-%m-%d')  # Простой print без скобок, в духе старых времён

Визуализация

Вот так мы «формируем» дату предыдущего дня в Python:

Markdown
Скопировать код
📅➡️🕰️↩️🗓️ *Бип-буп!* Идёт получение даты предыдущего дня...

Формирование завершено:

Python
Скопировать код
from datetime import datetime, timedelta

yesterday = datetime.now() – timedelta(days=1)
formatted_yesterday = yesterday.strftime('%Y-%m-%d')  # Получается хрустящей и ароматной!

И вот результат:

Markdown
Скопировать код
Сегодня:    [📅]
Вчера:🕰️🔄 [🗓️: **formatted_yesterday**]

Следующий шаг: эффективное управление датой предыдущего дня

Отлично, теперь у нас есть дата предыдущего дня. Но давайте пойдём дальше и разберёмся, как её можно эффективно управлять и использовать.

Работа с часовыми поясами

Так же как в кулинарии, так и в программировании география играет важную роль. Часовые пояса могут вносить коррективы в расчёт времени. Для точности используйте pytz или dateutil.

Сравнение дат

Сравниваете дату предыдущего дня с другой датой? Вашими помощниками станут операторы сравнения типа ==, <, > – это просто и надёжно!

Преобразование строк обратно в даты

Нужно преобразовать строку обратно в объект datetime? Нет проблем! Для этого существует datetime.strptime:

Python
Скопировать код
from datetime import datetime
date_string = "04-05-23"
date_object = datetime.strptime(date_string, '%m-%d-%y')  # Обратное преобразование в магические даты

Сериализация

Передача дат между системами или их сохранение требует сериализации. Преобразуйте их в строки или используйте формат ISO 8601 с помощью datetime.isoformat() для гарантии совместимости.

Полезные материалы

  1. datetime — Основные типы даты и времени — Документация Python 3.12.2
  2. Справочная шпаргалка по strftime для Python
  3. dateutil – мощные расширения для datetime — документация dateutil 2.8.2
  4. python – подсчет каждого значения в списке кортежей – Stack Overflow
  5. Arrow: улучшенное управление датами и временем в Python — документация Arrow 🏹 1.3.0
  6. Использование модуля datetime в Python для работы с датами и временем – Real Python
  7. Функционал временных рядов и дат — документация pandas 2.2.0