replace() pentru date și ore în Python

Dată și oră Python 3.0+

Creează o copie a unei date sau ore, cu unele componente schimbate.

Sintaxă
data.replace(year=..., month=..., day=...)
dt.replace(hour=..., minute=..., tzinfo=...)
ora.replace(hour=..., ...)

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