Ce face strptime(): citirea datelor din text
datetime.strptime() este inversul lui strftime(): primește textul și șablonul cu aceleași coduri (%d.%m.%Y %H:%M) și returnează un datetime. Textul trebuie să se potrivească exact șablonului, altfel apare ValueError.
Din Python 3.14 există și date.strptime() și time.strptime(), care returnează direct un date, respectiv un time. Pentru formatul standard ISO (2026-10-19), fromisoformat() este mai simplă și mai rapidă.
Parametri
| Parametru | Descriere |
|---|---|
text |
Textul cu data. |
format |
Șablonul care descrie textul. |
Ce returnează
Un datetime (sau date, time).
Exemple
Exemplul 1: Formate diferite
from datetime import datetime, date, time
print(datetime.strptime("19.10.2026 14:30", "%d.%m.%Y %H:%M"))
print(datetime.strptime("2026/10/19", "%Y/%m/%d"))
print(date.strptime("05.03.1998", "%d.%m.%Y"))
print(time.strptime("08:15", "%H:%M"))
Rezultat
2026-10-19 14:30:00
2026-10-19 00:00:00
1998-03-05
08:15:00
Exemplul 2: Text care nu se potrivește
from datetime import datetime
for text in ["19.10.2026", "2026-10-19", "31.02.2026"]:
try:
print(datetime.strptime(text, "%d.%m.%Y").date())
except ValueError as e:
print(f"{text!r}: {e}")
Rezultat
2026-10-19
'2026-10-19': time data '2026-10-19' does not match format '%d.%m.%Y'
'31.02.2026': day 31 must be in range 1..28 for month 2 in year 2026
Greșeli frecvente
- Șablonul nu are aceleași separatoare ca textul (
-față de.) și primeștiValueError: time data ... does not match format.
Comenzi înrudite
strftime(): formatarea datelor: Transformă o dată sau o oră în text, după un șablon ca %d.%m.%Y %H:%M.isoformat() și fromisoformat(): Scrie și citește datele în formatul standard ISO 8601 (2026-10-19T14:30:00).time.strftime(), time.strptime() și struct_time: Formatarea și citirea datelor în modulul time, cu structura struct_time.