Python strptime () - șir către obiectul datetime

În acest articol, veți învăța să creați un obiect datetime dintr-un șir (cu ajutorul exemplelor).

strptime()Metoda creează un obiect datetime din șirul dat.

Notă: Nu puteți crea datetimeobiect din fiecare șir. Șirul trebuie să fie într-un anumit format.

Exemplul 1: șir la obiect 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)) 

Când rulați programul, ieșirea va fi:

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

Cum funcționează strptime ()?

Metoda strptime()clasei ia două argumente:

  • șir (care poate fi convertit în datetime)
  • codul formatului

Pe baza șirului și a codului de format utilizat, metoda returnează datetimeobiectul echivalent .

În exemplul de mai sus:

Aici,

  • %d- Reprezintă ziua lunii. Exemplu: 01, 02, …, 31
  • %B- Numele lunii în întregime. Exemplu: ianuarie, februarie etc.
  • %Y- An în patru cifre. Exemplu: 2018, 2019 etc.

Exemplul 2: șir la obiect 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) 

Când rulați programul, ieșirea va fi:

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

Formatați lista codurilor

Tabelul de mai jos prezintă toate codurile de format pe care le puteți utiliza.

Directivă Sens Exemplu
%a Numele prescurtat al zilei săptămânii. Soare, luni, …
%A Numele întreg al săptămânii. Duminică luni,…
%w Ziua săptămânii ca număr zecimal. 0, 1,…, 6
%d Ziua lunii ca o zecimală completată cu zero. 01, 02, …, 31
%-d Ziua lunii ca număr zecimal. 1, 2, …, 30
%b Numele lunii prescurtate. Ianuarie, februarie,…, dec
%B Numele lunii complete. Ianuarie februarie,…
%m Luna ca număr zecimal completat zero. 01, 02,…, 12
%-m Luna ca număr zecimal. 1, 2,…, 12
%y Anul fără secol ca număr zecimal neatenit. 00, 01, …, 99
%-y An fără secol ca număr zecimal. 0, 1, …, 99
%Y An cu secolul ca număr zecimal. 2013, 2019 etc.
%H Ora (ceasul de 24 de ore) ca număr zecimal căptușit zero. 00, 01, …, 23
%-H Ora (ceasul de 24 de ore) ca număr zecimal. 0, 1, …, 23
%I Ora (ceasul de 12 ore) ca număr zecimal căptușit zero. 01, 02,…, 12
%-I Ora (ceasul de 12 ore) ca număr zecimal. 1, 2,… 12
%p Locale AM ​​sau PM. AM PM
%M Minutul ca număr zecimal completat cu zero. 00, 01, …, 59
%-M Minutul ca număr zecimal. 0, 1, …, 59
%S În al doilea rând ca un număr zecimal căptușit zero. 00, 01, …, 59
%-S Al doilea ca număr zecimal. 0, 1, …, 59
%f Microsecunda ca număr zecimal, zero-căptușit în stânga. 000000 - 999999
%z Decalaj UTC sub forma + HHMM sau -HHMM.
%Z Numele fusului orar.
%j Ziua anului ca număr zecimal cu căptușeală zero. 001, 002,…, 366
%-j Ziua anului ca număr zecimal. 1, 2,…, 366
%U Numărul săptămânii din an (duminica ca prima zi a săptămânii). Toate zilele dintr-un an nou care preced prima duminică sunt considerate a fi în săptămâna 0. 00, 01, …, 53
%W Numărul săptămânii din an (luni ca prima zi a săptămânii). Toate zilele dintr-un nou an care precede prima zi de luni sunt considerate a fi în săptămâna 0. 00, 01, …, 53
%c Reprezentarea corespunzătoare a datei și orei locale. Luni 30 septembrie 07:06:05 2013
%x Reprezentarea corespunzătoare a datei locale. 30.09.13
%X Reprezentarea timpului corespunzător localului. 07:06:05
%% Un caracter literal „%”. %

ValueError în strptime ()

În cazul în care șirul (primul argument) și codul de format (al doilea argument) trecut la strptime()nu corespund, veți obține ValueError. De exemplu:

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

Dacă rulați acest program, veți primi o eroare.

 ValueError: datele de timp „12.11.2018” nu se potrivesc cu formatul „% d% m% Y” 

Lecturi recomandate: Python strftime ()

Articole interesante...