Python: уроки, справочник и задачи

Python strftime

Раздел: Модули и библиотеки Python · Обновлено 31.10.2026

Python strftime: разбор темы с примерами кода на Python 3 из раздела "Модули и библиотеки Python". Показаны основные функции, параметры и рабочие примеры кода с результатом выполнения.

Продолжаем цикл статей по обработке даты и времени в Python. В этой статье мы научимся преобразовывать объекты date,time и datetime в строки на примерах.

Python strftime
Фото: Eden Aviv / CC0, Wikimedia Commons
Содержание статьи
  1. Преобразование datetime в строку с помощью strftime()
  2. Логика работы strftime()?
  3. Список кодов strftime()

Преобразование datetime в строку с помощью strftime()

Приведенная ниже программа преобразует datetime объект, который содержит текущую дату и время, в строковый формат.

from datetime import datetime
now = datetime.now() # Текущее время
year = now.strftime("%Y")
print("Год:", year)
month = now.strftime("%m")
print("Месяц:", month)
day = now.strftime("%d")
print("День:", day)
time = now.strftime("%H:%M:%S")
print("Время:", time)
date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("Дата и время:",date_time)

Логика работы strftime()?

В программе выше %Y,%m,%d являются кодами метода strftime(). Данный метод может принимать как один так и несколько кодов в качестве аргумента.

  1. Мы импортировали класс datetime из модуля datetime что бы получить доступ к методу strftime().
    Логика работы strftime()?
  2. В объекте DateTime текущая дата хранится в now()Логика работы strftime()?
  3. В метод strftime() передаем код Логика работы strftime()?
  4. Строка которую мы передаем в strftime() может содержать несколько кодовЛогика работы strftime()?

Список кодов strftime()

ДирективаЗначениеПример
%aСокращенное название дня недели. Вс.Пн.Вт
%AПолное название дня недели. Воскресенье, понедельник
%wДень недели в виде десятичного числа. 0,1,2,3,4,5,6
%dДень месяца в с добавлением нуля. 01,02,03,....31
%-dДень месяца в виде числа. 1,2,3,4,5....31
%bСокращенное название месяца. Янв.Февр,Мар
%BПолное название месяца. Январь, февраль, Март
%mМесяц в виде числа с нулевым заполнением. 01,02,03...12
%-mМесяц в виде десятичного числа. 1,2,3,...12
%yГод без столетия как десятичное число с нулевой подкладкой. 01,02,03...99
%-yГод без столетия как десятичное число. 1,2,3,...99
%YГод с веком в виде десятичного числа. 2010,2011,...2021
%HЧас (24-часовые часы) с нулевым заполнением. 00,01,02,...23
%-HЧас (24-часовые часы) как десятичное число. 1,2,3,...23
%IЧас (12-часовые часы) с нулевым заполнением. 01,02,03,...12
%-IЧас (12-часовые часы) как десятичное число. 1,2,3...12
%pAM/PM
%MМинута в виде числа с нулевым заполнением. 00,01,02,...59
%-MМинута как десятичное число. 1,2,3,...59
%SСекунды с нулевым заполнением00,01,02,...59
%-SСекунды как десятичное значение0,1,2,3...59
%fМикросекунда в виде десятичного числа, слева-ноль. 000000-999999
%zСмещение UTC в виде +HHMM или -HHMM.
%ZНазвание часового пояса.
%jДень года в виде десятичного числа, дополненного нулем. 001,002,003,...366
%-jДень года в виде десятичного числа. 1,2,3,....366
%UНомер недели года (воскресенье как первый день недели). Все дни в новом году, предшествующие первому воскресенью, считаются неделей 0. 00,01,02,..53
%WНомер недели года (понедельник как первый день недели). Все дни в новом году, предшествующие первому понедельнику, считаются неделей 0. 00,01,02,..53
%cСоответствующее представление даты и времени локали. Пн 30 сентября 07:06:05 2013
%xСоответствующее представление даты локали. 09/30/13
%XСоответствующее представление времени локали. 07:06:05
%%Буквальный символ"%". %

Рассмотрим пару примеров, применения кодов.

from datetime import datetime
timestamp = 1528797322
date_time = datetime.fromtimestamp(timestamp)
d = date_time.strftime("%c")
print("Результат 1:", d)	
d = date_time.strftime("%x")
print("Результат 2:", d)
d = date_time.strftime("%X")
print("Результат 3:", d)
Результат:
Результат 1: Tue Jun 12 09:55:22 2018
Результат 2: 06/12/18
Результат 3: 09:55:22