datetime.datetime în Python

Dată și oră Python 3.0+

Clasa pentru o dată împreună cu ora: creare, data și ora curentă, calcule și comparații.

Sintaxă
from datetime import datetime
datetime(an, luna, zi, ora=0, minut=0, secunda=0, microsecunda=0, tzinfo=None)
datetime.now(tz=None)

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 apoi datetime.now(): primești AttributeError: module 'datetime' has no attribute 'now'. Fie from datetime import datetime, fie datetime.datetime.now().
  • Compari sau scazi un datetime naiv cu unul care are fus orar și primești TypeError: can't compare offset-naive and offset-aware datetimes.

Comenzi înrudite