Документация по Python. Теоретические материалы, и практические задачи

Python strftime

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

Преобразование 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().
  2. В объекте DateTime текущая дата хранится в now()
  3. В метод strftime() передаем код
  4. Строка которую мы передаем в 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

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *