Как правильно использовать метод strptime() и strftime() в Python

Article image

18 мин. чтения

Работа с датами и временем — одна из самых частых задач в Python. Нужно распарсить строку с датой из CSV-файла, красиво вывести текущее время или сравнить две даты? Для этого в стандартной библиотеке есть модуль datetime, а в нем — два ключевых метода: strptime() и strftime(). В этой статье мы разберемся, зачем они нужны и как ими пользоваться. 

Из этой статьи вы узнаете:

  • зачем вообще нужны методы strptime() и strftime();

  • чем они отличаются и как работают;

  • как преобразовать строку с датой в объект datetime и обратно;

  • какие коды форматов использовать (%Y, %m, %d и другие);

  • где эти методы пригодятся при создании сайтов — от форм до блогов и логов.

Зачем нужны strptime() и strftime()

Прежде чем переходить к примерам, стоит разобраться, зачем вообще нужны эти два метода и что они делают в коде. На первый взгляд, они просто превращают дату в строку и обратно — но на практике это основа почти любой работы со временем в Python. 

Итак, зачем нужны эти методы: 

1. Чтобы превратить текст в дату

Когда вы загружаете данные из CSV, API или базы, дата приходит в виде обычной строки:

2025-10-05

Для Python это просто текст — никакой «магии времени» внутри нет.

А если вам нужно что-то посчитать: сравнить даты, узнать разницу в днях или прибавить неделю, — с текстом это не сработает.

Метод strptime() решает проблему: он превращает строку в объект datetime, с которым можно делать арифметику, сортировать по времени и даже определять день недели.

2. Чтобы красиво вывести дату пользователю

Объект datetime по умолчанию выглядит сухо и машинно:

2025-10-05 00:00:00

Такой формат удобен программисту, но не человеку.

Если вы хотите вывести дату на сайте, в письме или в отчете, лучше что-то вроде:

05 октября 2025, воскресенье

или

05.10.25 00:00

Вот тут и нужен strftime(): он форматирует дату в человекопонятный вид, подстраивая стиль под задачу — от делового отчета до приветственного письма.

3. Чтобы привести хаос к единому формату

Даты из разных источников могут выглядеть по-разному:

  • 2025-10-05T15:30:00Z — стандарт ISO из API,

  • 05/10/2025 15:30 — европейский вариант,

  • Sun, 05 Oct 2025 15:30:00 GMT — формат, знакомый почтовым серверам.

Если просто склеить все это в одну таблицу, получится каша.

Метод strptime() помогает навести порядок — распознать каждый формат и привести все даты к единому стандарту (datetime), чтобы с ними было удобно работать в коде.

4. Чтобы автоматизировать рутину

Все, что работает по расписанию, крутится вокруг этих методов.
Например:

  • ежедневные бэкапы с именем вроде backup_2025-10-05.log;

  • скрипты, которые логируют действия пользователей;

  • уведомления и отчеты с актуальной датой в названии.

Метод strftime() вставляет дату туда, где она нужна, а strptime() помогает сравнивать время и определять, что пора запустить следующий цикл.

Без них любая автоматизация быстро превращается в хаос с разными форматами, ошибками и несостыковками во времени.

Зачем это нужно при создании сайтов

strftime() и strptime() мелькают в каждом проекте, где есть даты, время или расписание — то есть почти в любом сайте, даже самом простом. Вот где именно они пригодятся:

Формы и ввод данных

Представьте: пользователь оформляет заказ и указывает дату доставки — 05/10/2025.

На вид все просто, но серверу нужно понять, что это именно 5 октября, а не 10 мая, и сохранить дату в правильном формате.

Метод strptime() как раз для этого: он превращает строку из формы в объект даты, с которым можно работать — проверять, сохранять, сравнивать.

А strftime() потом делает обратное: выводит эту дату пользователю в красивом, понятном виде — например, «5 октября 2025 года».

Интернет-магазины и бронирования

Любые акции «только до 10 октября», расписания доставки, свободные слоты брони — все это завязано на точном времени.

С помощью strftime() и strptime() можно:

  • посчитать, сколько осталось до конца акции;

  • проверить, не занято ли время доставки;

  • показать таймер обратного отсчета в понятном формате.

Без этих методов легко запутаться, когда сервер работает по UTC, а пользователь живет в другом часовом поясе.

Блог и контент

На сайте новостей или в корпоративном блоге дата публикации хранится как объект datetime, а выводится через strftime():

5 октября 2025

Если вы импортируете старые материалы из CSV или RSS, даты там обычно хранятся строками — strptime() помогает превратить их в нормальные объекты и не потерять хронологию.

Логи и аналитика

Регистрация, вход, заказ, клик по кнопке — каждое событие записывается с меткой времени.

Чтобы потом удобно фильтровать эти логи, строить отчеты или считать конверсию, дата должна быть в правильном формате. Методы strptime() и strftime() упрощают это: логи остаются машинно точными, но при этом легко читаемыми при выводе в интерфейсе.

Разные языки и форматы

Если сайт работает на нескольких языках, без strftime() не обойтись.

Русская версия должна показывать дату как 05.10.2025, а английская — October 5, 2025.

Метод strftime() позволяет легко подстроить формат под язык и локаль, не создавая отдельные шаблоны для каждой версии.

Один и тот же объект даты можно отобразить десятками способов — все решает форматная строка. И в итоге получается меньше хаоса и ошибок

Даты — это не просто цифры. Они участвуют в скидках, таймерах, отчетах, логах и контенте.
strftime() и strptime() — универсальные инструменты, которые помогают держать этот поток под контролем.

С ними не нужно гадать, где «10/05» — это октябрь, а где май,
и не приходится вручную собирать даты из кусков текста.

Даже если вы не пишете сложные скрипты, знать эти методы стоит: они упрощают любую работу со временем на сайте — от проверки форм до красивого вывода новостей и отчетов.

Ключевые коды форматов

И strftime(), и strptime() работают по одному принципу. Вы задаете шаблон из специальных символов — так Python понимает, как именно нужно прочитать или вывести дату.

Например:

%d.%m.%Y  →  05.10.2025  

%Y-%m-%d %H:%M" →  2025-10-05 12:45

Каждый символ после знака % отвечает за конкретный элемент даты или времени: день, месяц, год, часы и так далее.

Вот таблица с самыми популярными символами: 

Таблица самых популярных символов

Эти коды можно комбинировать как угодно — главное, чтобы шаблон совпадал с реальным форматом строки.

Полный список можно найти  в официальной документации Python

Совет: Если вы не уверены, как выглядит дата в исходных данных — выведите ее, посмотрите формат и составьте шаблон под него.

Например, если строка 2025/10/05 15:30 — значит шаблон должен быть %Y/%m/%d %H:%M.

Лайфхак для вывода: Чтобы быстро проверить, как работает конкретный код, можно сделать тест прямо в интерпретаторе:

from datetime import datetime
print(datetime.now().strftime("%A, %d %B %Y %H:%M"))

Получится: 

Sunday, 05 October 2025 14:37

Итоги

Методы strptime() и strftime() — это простые инструменты, без которых не обходится ни один проект, где нужно работать с датами. Они делают скучную рутину с форматами и временем предсказуемой и удобной.

strptime() нужен, когда у вас есть дата в виде текста, и вы хотите превратить ее в объект datetime. Это основа любой логики, где нужно что-то сравнивать, фильтровать или рассчитывать по времени.

strftime(), наоборот, помогает сделать дату человекопонятной. Он форматирует время под задачу:

— для пользователей — «05 октября 2025»,
— для логов — 2025-10-05 14:30,
— для файлов и скриптов — backup_2025-10-05.log.

Оба метода работают как зеркало: один превращает текст в дату, другой — дату в текст. Их можно комбинировать, использовать в цепочках и не бояться хаоса в форматах.

Используя strptime() и strftime(), вы перестаете бороться с датами и начинаете работать с ними осознанно: в аналитике, на сайте или при настройке автоматизации. 

Поэтому знать эти методы точно не помешает.