Python strptime () - строка для объекта datetime

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

strptime()Метод создает объект типа DateTime из заданной строки.

Примечание: вы не можете создать datetimeобъект из каждой строки. Строка должна быть в определенном формате.

Пример 1: строка для объекта datetime

  from datetime import datetime date_string = "21 June, 2018" print("date_string =", date_string) print("type of date_string =", type(date_string)) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object) print("type of date_object =", type(date_object)) 

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

 date_string = 21 июня 2018 года тип date_string = date_object = 2018-06-21 00:00:00 тип date_object = 

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

Метод strptime()класса принимает два аргумента:

  • строка (которая будет преобразована в дату и время)
  • код формата

На основе используемой строки и кода формата метод возвращает эквивалентный datetimeобъект.

В приведенном выше примере:

Вот,

  • %d- представляет день месяца. Пример: 01, 02,…, 31
  • %B- Название месяца полностью. Пример: январь, февраль и т. Д.
  • %Y- Год в четырехзначном формате. Пример: 2018, 2019 и т. Д.

Пример 2: строка для объекта datetime

  from datetime import datetime dt_string = "12/11/2018 09:15:32" # Considering date is in dd/mm/yyyy format dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # Considering date is in mm/dd/yyyy format dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2) 

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

 dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:32 

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

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

Директива Смысл пример
%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
%% Буквальный символ "%". %

ValueError в strptime ()

Если строка (первый аргумент) и код формата (второй аргумент), переданные в strptime(), не совпадают, вы получите ValueError. Например:

  from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object) 

Если вы запустите эту программу, вы получите ошибку.

 ValueError: данные времени '12/11/2018' не соответствуют формату '% d% m% Y' 

Рекомендуемая литература: Python strftime ()

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