Python strptime () - ciąg znaków do obiektu datetime

W tym artykule nauczysz się tworzyć obiekt daty i godziny na podstawie ciągu znaków (z pomocą przykładów).

strptime()Metoda tworzy obiekt datetime z podanego łańcucha.

Uwaga: nie możesz utworzyć datetimeobiektu z każdego ciągu. Ciąg musi mieć określony format.

Przykład 1: ciąg znaków do obiektu 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)) 

Po uruchomieniu programu wynik będzie następujący:

 date_string = 21 czerwca 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object = 

Jak działa strptime ()?

Metoda strptime()klasowa przyjmuje dwa argumenty:

  • ciąg (konwertowany na datę i godzinę)
  • kod formatu

Na podstawie użytego ciągu i kodu formatu metoda zwraca równoważny datetimeobiekt.

W powyższym przykładzie:

Tutaj,

  • %d- reprezentuje dzień miesiąca. Przykład: 01, 02,…, 31
  • %B- Pełna nazwa miesiąca. Przykład: styczeń, luty itp.
  • %Y- Rok za pomocą czterech cyfr. Przykład: 2018, 2019 itd.

Przykład 2: ciąg znaków do obiektu 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) 

Po uruchomieniu programu wynik będzie następujący:

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

Formatuj listę kodów

Poniższa tabela zawiera wszystkie kody formatów, których możesz użyć.

Dyrektywa Znaczenie Przykład
%a Skrócona nazwa dnia tygodnia. Niedz., Pon.…
%A Pełna nazwa dnia tygodnia. Niedziela poniedziałek,…
%w Dzień tygodnia jako liczba dziesiętna. 0, 1,…, 6
%d Dzień miesiąca jako ułamek dziesiętny z wypełnieniem zerowym. 01, 02,…, 31
%-d Dzień miesiąca jako liczba dziesiętna. 1, 2,…, 30
%b Skrócona nazwa miesiąca. Styczeń, luty,…, grudzień
%B Pełna nazwa miesiąca. Styczeń luty,…
%m Miesiąc jako liczba dziesiętna z zerami. 01, 02,…, 12
%-m Miesiąc jako liczba dziesiętna. 1, 2,…, 12
%y Rok bez wieku jako liczba dziesiętna z wypełnieniem zerowym. 00, 01,…, 99
%-y Rok bez wieku jako liczba dziesiętna. 0, 1,…, 99
%Y Rok z wiekiem jako liczbą dziesiętną. 2013, 2019 itd.
%H Godzina (zegar 24-godzinny) jako liczba dziesiętna z zerami. 00, 01,…, 23
%-H Godzina (zegar 24-godzinny) jako liczba dziesiętna. 0, 1,…, 23
%I Godzina (zegar 12-godzinny) jako liczba dziesiętna z zerami. 01, 02,…, 12
%-I Godzina (zegar 12-godzinny) jako liczba dziesiętna. 1, 2,… 12
%p Lokalne AM lub PM. AM, PM
%M Minuta jako liczba dziesiętna z zerami. 00, 01,…, 59
%-M Minuta jako liczba dziesiętna. 0, 1,…, 59
%S Po drugie jako liczba dziesiętna z zerami. 00, 01,…, 59
%-S Drugi jako liczba dziesiętna. 0, 1,…, 59
%f Mikrosekunda jako liczba dziesiętna, dopełniona zerami po lewej stronie. 000000 - 999999
%z Przesunięcie czasu UTC w postaci + GGMM lub -GGMM.
%Z Nazwa strefy czasowej.
%j Dzień roku jako liczba dziesiętna z zerami. 001, 002,…, 366
%-j Dzień roku jako liczba dziesiętna. 1, 2,…, 366
%U Numer tygodnia w roku (niedziela jako pierwszy dzień tygodnia). Wszystkie dni w nowym roku poprzedzające pierwszą niedzielę są uważane za tydzień 0. 00, 01,…, 53
%W Numer tygodnia w roku (poniedziałek jako pierwszy dzień tygodnia). Wszystkie dni w nowym roku poprzedzające pierwszy poniedziałek przypadają na tydzień 0. 00, 01,…, 53
%c Odpowiednia reprezentacja daty i czasu w ustawieniach regionalnych. Poniedziałek, 30 września, 07:06:05 2013
%x Właściwa reprezentacja daty dla lokalizacji. 30.09.13
%X Odpowiednia reprezentacja czasu w języku lokalnym. 07:06:05
%% Dosłowny znak „%”. %

ValueError w strptime ()

Jeśli ciąg (pierwszy argument) i kod formatu (drugi argument) przekazane do strptime()nie są zgodne, otrzymasz ValueError. Na przykład:

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

Jeśli uruchomisz ten program, pojawi się błąd.

 Błąd wartości: dane czasu „12/11/2018” nie są zgodne z formatem „% d% m% Y” 

Zalecane lektury: Python strftime ()

Interesujące artykuły...