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 Година (цілодобовий годинник) як нульове десяткове число. 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 зміщення у формі + HHMM або -HHMM.
%Z Назва часового поясу.
%j День року як десяткове число, заповнене нулем. 001, 002,…, 366
%-j День року як десяткове число. 1, 2,…, 366
%U Номер тижня року (неділя як перший день тижня). Усі дні у новому році, що передують першій неділі, вважаються тижні 0. 00, 01, …, 53
%W Номер тижня року (понеділок як перший день тижня). Усі дні нового року, що передують першому понеділку, вважаються тижні 0. 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 ()

Цікаві статті...