Python strptime () - reťazec k objektu datetime

V tomto článku sa naučíte vytvárať objekt datetime z reťazca (pomocou príkladov).

strptime()Metóda vytvorí objekt datetime z daného reťazca.

Poznámka:datetime Objekt nemôžete vytvoriť z každého reťazca. Reťazec musí byť v určitom formáte.

Príklad 1: reťazec k 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)) 

Po spustení programu bude výstup:

 date_string = 21 June, 2018 type of date_string = date_object = 2018-06-21 00:00:00 type of date_object = 

Ako funguje strptime ()?

Metóda strptime()triedy má dva argumenty:

  • reťazec (ktorý sa prevedie na dátum a čas)
  • formátovací kód

Na základe použitého reťazca a formátu kódu vráti metóda ekvivalentný datetimeobjekt.

Vo vyššie uvedenom príklade:

Tu,

  • %d- Predstavuje deň v mesiaci. Príklad: 01, 02, …, 31
  • %B- Celé meno mesiaca. Príklad: január, február atď.
  • %Y- Rok štyrmi číslicami. Príklad: 2018, 2019 atď.

Príklad 2: Reťazec k 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) 

Po spustení programu bude výstup:

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

Formátovať zoznam kódov

Nasledujúca tabuľka zobrazuje všetky kódy formátu, ktoré môžete použiť.

Smernice Význam Príklad
%a Skrátený názov dňa v týždni. Ne, Po, …
%A Celý názov dňa v týždni. Nedeľa pondelok,…
%w Deň v týždni ako desatinné číslo. 0, 1, …, 6
%d Deň v mesiaci ako desatinné miesto doplnené nulou. 01, 02, …, 31
%-d Deň v mesiaci ako desatinné číslo. 1, 2, …, 30
%b Skrátený názov mesiaca. Jan, Feb, …, Dec
%B Celý mesiac. Január február,…
%m Mesiac ako desatinné číslo doplnené nulou. 01, 02, …, 12
%-m Mesiac ako desatinné číslo. 1, 2, …, 12
%y Rok bez storočia ako desatinné číslo s nulou. 00, 01, …, 99
%-y Rok bez storočia ako desatinné číslo. 0, 1, …, 99
%Y Rok so storočím ako desatinné číslo. 2013, 2019 atď.
%H Hodina (24-hodinový formát) ako desatinné číslo doplnené nulou. 00, 01, …, 23
%-H Hodina (24-hodinový formát) ako desatinné číslo. 0, 1,…, 23
%I Hodina (12-hodinový formát) ako desatinné číslo doplnené nulou. 01, 02, …, 12
%-I Hodina (12-hodinový formát) ako desatinné číslo. 1, 2, … 12
%p Miestny čas je AM alebo PM. DOPOLUDNIA POPOLUDNÍ
%M Minúta ako desatinné číslo doplnené nulou. 00, 01, …, 59
%-M Minúta ako desatinné číslo. 0, 1, …, 59
%S Druhé ako desatinné číslo s nulovou čiarkou. 00, 01, …, 59
%-S Druhé ako desatinné číslo. 0, 1, …, 59
%f Mikrosekundu ako desatinné číslo, vľavo doplnené nulou. 000000 - 999999
%z Ofset UTC vo forme + HHMM alebo -HHMM.
%Z Názov časovej zóny.
%j Deň v roku ako desatinné číslo s nulou. 001, 002, …, 366
%-j Deň v roku ako desatinné číslo. 1, 2, …, 366
%U Číslo týždňa v roku (nedeľa ako prvý deň v týždni). Všetky dni v novom roku predchádzajúcom prvej nedeli sa považujú za dni 0. 00, 01, …, 53
%W Číslo týždňa v roku (pondelok ako prvý deň v týždni). Všetky dni v novom roku, ktoré predchádzajú prvému pondelku, sa považujú za dni v 0. týždni. 00, 01, …, 53
%c Príslušné zastúpenie dátumu a času podľa miestneho nastavenia. Pon 30. september 07:06:05 2013
%x Príslušné zastúpenie dátumu podľa miestneho nastavenia. 30.09.2013
%X Vhodná časová reprezentácia miestneho času. 07:06:05
%% Doslovný znak „%“. %

ValueError v strptime ()

Ak sa reťazec (prvý argument) a formátový kód (druhý argument) odovzdaný do strptime()nezhodujú, dostanete ValueError. Napríklad:

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

Ak spustíte tento program, zobrazí sa chyba.

 ValueError: časové údaje „11.12.2018“ sa nezhodujú s formátom „% d% m% Y“ 

Odporúčané čítania: Python strftime ()

Zaujímavé články...