Python strptime () - řetězec do objektu datetime

V tomto článku se naučíte vytvořit objekt datetime z řetězce (pomocí příkladů).

strptime()Metoda vytvoří objekt datetime z daného řetězce.

Poznámka:datetime Objekt nelze vytvořit z každého řetězce. Řetězec musí být v určitém formátu.

Příklad 1: Řetězec do objektu 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)) 

Když spustíte program, výstup bude:

 date_string = 21. června 2018 typ date_string = date_object = 2018-06-21 00:00:00 typ date_object = 

Jak funguje strptime ()?

Metoda strptime()třídy má dva argumenty:

  • řetězec (který se převede na datetime)
  • formátovací kód

Na základě použitého řetězce a formátovacího kódu vrátí metoda svůj ekvivalentní datetimeobjekt.

Ve výše uvedeném příkladu:

Tady,

  • %d- Představuje den v měsíci. Příklad: 01, 02,…, 31
  • %B- Celé jméno měsíce. Příklad: leden, únor atd.
  • %Y- Rok čtyřciferný. Příklad: 2018, 2019 atd.

Příklad 2: Řetězec do objektu 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) 

Když spustíte program, výstup bude:

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

Formátovat seznam kódů

V následující tabulce jsou uvedeny všechny kódy formátů, které můžete použít.

Směrnice Význam Příklad
%a Zkrácený název dne v týdnu. Ne, Po, …
%A Celý název dne v týdnu. Neděle pondělí,…
%w Den v týdnu jako desetinné číslo. 0, 1,…, 6
%d Den měsíce jako desetinné čárky. 01, 02,…, 31
%-d Den v měsíci jako desetinné číslo. 1, 2,…, 30
%b Zkrácený název měsíce. Leden, únor,…, prosinec
%B Celé jméno měsíce. Leden únor,…
%m Měsíc jako desetinné číslo doplněné nulou. 01, 02,…, 12
%-m Měsíc jako desetinné číslo. 1, 2,…, 12
%y Rok bez století jako nulové desetinné číslo. 00, 01,…, 99
%-y Rok bez století jako desetinné číslo. 0, 1,…, 99
%Y Rok se stoletím jako desetinné číslo. 2013, 2019 atd.
%H Hour (24-hour clock) as a zero-padded decimal number. 00, 01,…, 23
%-H Hodina (24hodinový formát) jako desetinné číslo. 0, 1,…, 23
%I Hodina (12hodinový formát) jako nulové desetinné číslo. 01, 02,…, 12
%-I Hodina (12hodinový formát) jako desetinné číslo. 1, 2,… 12
%p Místní nebo dopolední čas. DOPOLEDNE ODPOLEDNE
%M Minuta jako desetinné číslo doplněné nulou. 00, 01,…, 59
%-M Minuta jako desetinné číslo. 0, 1,…, 59
%S Druhé jako nulové desetinné číslo. 00, 01,…, 59
%-S Druhý jako desetinné číslo. 0, 1,…, 59
%f Mikrosekunda jako desítkové číslo, s nulovým polstrováním vlevo. 000000 - 999999
%z Offset UTC ve tvaru + HHMM nebo -HHMM.
%Z Název časového pásma.
%j Den v roce jako nulové číslo. 001, 002,…, 366
%-j Den v roce jako desetinné číslo. 1, 2,…, 366
%U Číslo týdne v roce (neděle jako první den v týdnu). Všechny dny nového roku předcházející první neděli se považují za dny 0. 00, 01,…, 53
%W Číslo týdne v roce (pondělí jako první den v týdnu). Všechny dny nového roku předcházejícího prvnímu pondělí se považují za dny 0. 00, 01,…, 53
%c Vhodná reprezentace data a času podle národního prostředí. Po 30. září 07:06:05 2013
%x Vhodná reprezentace data podle národního prostředí. 30.09.13
%X Vhodná časová reprezentace národního prostředí. 07:06:05
%% Doslovný znak '%'. %

ValueError v strptime ()

Pokud se řetězec (první argument) a formátový kód (druhý argument) předaný do strptime()neodpovídají, dostanete ValueError. Například:

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

Pokud spustíte tento program, zobrazí se chyba.

 ValueError: časové údaje '12/11/2018' neodpovídají formátu '% d% m% Y' 

Doporučené čtení: Python strftime ()

Zajímavé články...