Ce face strftime(): formatarea datelor
strftime() există pe date, datetime și time și construiește un text după un șablon cu coduri. Coduri uzuale: %d zi (01-31), %m lună (01-12), %Y an cu 4 cifre, %y an cu 2 cifre, %H ora (00-23), %M minut, %S secundă, %j ziua din an, %A/%a numele zilei, %B/%b numele lunii, %% semnul procent.
Același șablon merge și în f-string-uri: f"{data:%d.%m.%Y}". Numele zilelor și lunilor sunt în engleză, dacă nu setezi o localizare românească cu locale.setlocale(); mai sigur este un dicționar propriu cu denumirile românești.
Parametri
| Parametru | Descriere |
|---|---|
format |
Șablonul cu coduri %. |
Ce returnează
Un text.
Exemple
Exemplul 1: Formate românești uzuale
from datetime import datetime
d = datetime(2026, 10, 19, 14, 5, 9)
print(d.strftime("%d.%m.%Y"))
print(d.strftime("%d.%m.%Y %H:%M"))
print(d.strftime("%Y-%m-%d_%H%M%S"))
print(f"{d:%d/%m/%y}", d.strftime("ziua %j din an"))
Rezultat
19.10.2026
19.10.2026 14:05
2026-10-19_140509
19/10/26 ziua 292 din an
Exemplul 2: Numele zilei și lunii în română
from datetime import date
ZILE = ["luni", "marți", "miercuri", "joi", "vineri", "sâmbătă", "duminică"]
LUNI = ["ianuarie", "februarie", "martie", "aprilie", "mai", "iunie", "iulie",
"august", "septembrie", "octombrie", "noiembrie", "decembrie"]
d = date(2026, 10, 19)
print(d.strftime("%A, %d %B %Y"))
print(f"{ZILE[d.weekday()]}, {d.day} {LUNI[d.month - 1]} {d.year}")
Rezultat
Monday, 19 October 2026
luni, 19 octombrie 2026
Exemplul 3: Pe date, datetime și time
from datetime import date, time
print(date(2026, 1, 5).strftime("%d %b %Y"))
print(time(9, 7).strftime("%H:%M"), time(21, 7).strftime("%I:%M %p"))
Rezultat
05 Jan 2026
09:07 09:07 PM
Greșeli frecvente
- Confunzi
%m(luna) cu%M(minutul) și obții date ca „19.05.2026” la ora 14:05. - Folosești
%-dpentru zi fără zero în față: funcționează pe Linux și macOS, dar nu pe Windows. Mai portabil:d.dayîntr-un f-string.
Comenzi înrudite
strptime(): citirea datelor din text: Transformă un text într-o dată, după un șablon care descrie forma textului.isoformat() și fromisoformat(): Scrie și citește datele în formatul standard ISO 8601 (2026-10-19T14:30:00).f-string (f"..."): Șiruri de caractere în care pui direct variabile și expresii între acolade.time.strftime(), time.strptime() și struct_time: Formatarea și citirea datelor în modulul time, cu structura struct_time.