Î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 datetime
obiect 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ă datetime
obiectul 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 ()