Python strftime () - преобразование даты и времени в строку

В этой статье вы научитесь преобразовывать объекты date, time и datetime в эквивалентную строку (с помощью примеров).

strftime()Метод возвращает строку , представляющую дату и время , используя дату, время или DateTime объекта.

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

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

  from datetime import datetime now = datetime.now() # current date and time year = now.strftime("%Y") print("year:", year) month = now.strftime("%m") print("month:", month) day = now.strftime("%d") print("day:", day) time = now.strftime("%H:%M:%S") print("time:", time) date_time = now.strftime("%m/%d/%Y, %H:%M:%S") print("date and time:",date_time) 

Когда вы запустите программу, результат будет примерно таким:

 год: 2018 месяц: 12 день: 24 время: 04:59:31 дата и время: 24.12.2018, 04:59:31 

Здесь год, день, время и date_time - это строки, а now - это datetimeобъект.

Как работает strftime ()?

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

  1. Мы импортировали datetimeкласс из datetimeмодуля. Это потому, что объект datetimeкласса может получить доступ к strftime()методу.
  2. datetimeОбъект , содержащий текущую дату и время хранится в настоящее переменной.
  3. strftime()Метод может быть использован для создания форматированных строк.
  4. Строка, которую вы передаете strftime()методу, может содержать более одного кода формата.

Пример 2: Создание строки из отметки времени

  from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) print("Date time object:", date_time) d = date_time.strftime("%m/%d/%Y, %H:%M:%S") print("Output 2:", d) d = date_time.strftime("%d %b, %Y") print("Output 3:", d) d = date_time.strftime("%d %B, %Y") print("Output 4:", d) d = date_time.strftime("%I%p") print("Output 5:", d) 

Когда вы запустите программу, вывод будет:

 Дата и время объекта: 2018-06-12 09:55:22 Выход 2: 06/12/2018, 09:55:22 Выход 3:12 июня 2018 г. Выход 4:12 июня 2018 г. Выход 5:09 утра 

Список кодов форматов

В таблице ниже показаны все коды, которые вы можете передать strftime()методу.

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

Пример 3: соответствующие дата и время для локали

  from datetime import datetime timestamp = 1528797322 date_time = datetime.fromtimestamp(timestamp) d = date_time.strftime("%c") print("Output 1:", d) d = date_time.strftime("%x") print("Output 2:", d) d = date_time.strftime("%X") print("Output 3:", d) 

Когда вы запустите программу, вывод будет:

 Выход 1: Вт 12 июня 09:55:22 2018 Выход 2: 12.06.18 Выход 3: 09:55:22 

Формат кодов %c, %xи %Xиспользуются для соответствующей даты и времени представления локали.

Мы также рекомендуем вам проверить Python strptime (). strptime()Метод создает datetimeобъект из строки.

Интересные статьи...