Ce face replace() pentru date și ore
Obiectele date, datetime și time sunt imutabile. replace() returnează un obiect nou cu componentele date înlocuite, de exemplu prima zi a lunii (day=1) sau începutul zilei (hour=0, minute=0, second=0, microsecond=0).
Dacă rezultatul nu este o dată validă (31 noiembrie), apare ValueError. La datetime, replace(tzinfo=...) schimbă eticheta fusului orar fără să convertească ora.
Parametri
| Parametru | Descriere |
|---|---|
year, month, day, hour, minute, second, microsecond, tzinfo, fold |
Componentele de schimbat, după nume. |
Ce returnează
Un obiect nou, de același tip.
Exemple
Exemplul 1: Început de lună, de zi și de an
from datetime import date, datetime, time
d = date(2026, 10, 19)
print(d.replace(day=1), d.replace(month=1, day=1))
dt = datetime(2026, 10, 19, 14, 37, 12)
print(dt.replace(hour=0, minute=0, second=0))
print(time(14, 37).replace(minute=0))
try:
date(2026, 10, 31).replace(month=11)
except ValueError as e:
print("Eroare:", e)
Rezultat
2026-10-01 2026-01-01
2026-10-19 00:00:00
14:00:00
Eroare: day 31 must be in range 1..30 for month 11 in year 2026
Greșeli frecvente
- Apelezi
d.replace(day=1)fără să salvezi rezultatul. Data originală nu se schimbă.
Comenzi înrudite
datetime.timedelta: O durată de timp: diferența dintre două date sau intervalul adăugat la o dată.Fusuri orare: timezone, astimezone() și ZoneInfo: Lucrul cu fusuri orare: date „conștiente” de fus, conversii și ora de vară.datetime.date și date.today(): Clasa pentru o dată calendaristică fără oră: zi, lună, an.