Python strptime () - низ към обект datetime

В тази статия ще се научите да създавате обект за дата и час от низ (с помощта на примери).

В strptime()метода създава вече дата обект от даден низ.

Забележка: Не можете да създадете 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. 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 Подходящото представяне на дата и час на Locale. Понеделник 30 септември 07:06:05 2013
%x Подходящо представяне на дата на Locale. 30.09.13
%X Подходящото представяне на времето на Locale. 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 ()

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