strptime(): citirea datelor din text în Python

Dată și oră Python 3.0+ (date.strptime, time.strptime: 3.14+)

Transformă un text într-o dată, după un șablon care descrie forma textului.

Sintaxă
datetime.strptime(text, format)
date.strptime(text, format)
time.strptime(text, format)

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ști ValueError: time data ... does not match format.

Comenzi înrudite