Ce face datetime.datetime
Un obiect datetime păstrează anul, luna, ziua, ora, minutul, secunda și microsecunda, plus opțional fusul orar (tzinfo). Îl creezi direct, cu datetime(2026, 10, 19, 14, 30), sau obții momentul curent cu datetime.now(). Obiectele sunt imutabile; le compari cu <, == și le scazi ca să obții un timedelta.
datetime.combine(data, ora) unește un date și un time. Metodele .date() și .time() fac operația inversă; .timetz() păstrează și fusul orar în ora extrasă.
Un datetime fără fus orar se numește „naiv” și este interpretat ca ora locală. Pentru aplicații care lucrează cu mai multe fusuri, folosește datetime.now(timezone.utc) sau ZoneInfo("Europe/Bucharest").
Parametri
| Parametru | Descriere |
|---|---|
an, luna, zi |
Data (obligatorii). |
ora, minut, secunda, microsecunda |
Opționale. Implicit 0. |
tzinfo / tz |
Opțional. Fusul orar. |
Ce returnează
Un obiect datetime.
Exemple
Exemplul 1: Data și ora curentă
from datetime import datetime
acum = datetime.now()
print(acum)
print(acum.year, acum.month, acum.day, acum.hour, acum.minute)
Rezultat posibil (diferă la fiecare rulare)
2026-10-19 14:32:07.418205
2026 10 19 14 32
Exemplul 2: Creare, comparație și diferență
from datetime import datetime
start = datetime(2026, 10, 19, 9, 0)
sfarsit = datetime(2026, 10, 19, 17, 30)
print(start < sfarsit)
durata = sfarsit - start
print(durata, durata.total_seconds() / 3600, "ore")
Rezultat
True
8:30:00 8.5 ore
Exemplul 3: combine(), date(), time()
from datetime import datetime, date, time, timezone
moment = datetime.combine(date(2026, 12, 24), time(18, 0))
print(moment)
print(moment.date(), moment.time())
cu_fus = datetime(2026, 10, 19, 12, 0, tzinfo=timezone.utc)
print(cu_fus.timetz())
Rezultat
2026-12-24 18:00:00
2026-12-24 18:00:00
12:00:00+00:00
Greșeli frecvente
- Scrii
import datetimeși apoidatetime.now(): primeștiAttributeError: module 'datetime' has no attribute 'now'. Fiefrom datetime import datetime, fiedatetime.datetime.now(). - Compari sau scazi un
datetimenaiv cu unul care are fus orar și primeștiTypeError: can't compare offset-naive and offset-aware datetimes.
Comenzi înrudite
strftime(): formatarea datelor: Transformă o dată sau o oră în text, după un șablon ca %d.%m.%Y %H:%M.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.