Ce face DateTime
DateTime reprezintă un moment precis: an, lună, zi, oră, minut, secundă, până la microsecunde. Constructorul DateTime(2026, 10, 19) creează data în fusul orar local al calculatorului; doar anul este obligatoriu, restul au valori implicite (1 pentru lună și zi, 0 pentru oră). Pentru UTC folosește DateTime.utc.
Lunile încep de la 1 (ianuarie = 1), nu de la 0. Valorile în afara intervalului sunt „reportate”: DateTime(2026, 1, 32) devine 1 februarie, iar DateTime(2026, 3, 0) este ultima zi din februarie. Trucul este util pentru a afla câte zile are o lună.
Obiectele DateTime sunt imutabile: add, copyWith și celelalte returnează date noi. Două date se compară cu isBefore, isAfter sau compareTo, deci o listă de date se poate sorta direct.
Parametri
| Parametru | Descriere |
|---|---|
year |
Anul. |
month, day |
Luna (1–12) și ziua (1–31); implicit 1. |
hour, minute, second |
Ora, minutul, secunda; implicit 0. |
millisecond, microsecond |
Fracțiuni de secundă; implicit 0. |
Ce returnează
Un obiect DateTime local.
Exemple
Exemplul 1: Crearea unor date
void main() {
var examen = DateTime(2026, 6, 15, 9, 30);
print(examen);
print(DateTime(2026));
print(DateTime(2026, 1, 32));
print(examen.isUtc);
var zile = [DateTime(2026, 12, 1), DateTime(2026, 3, 8), DateTime(2026, 6, 1)];
zile.sort();
print(zile);
}
Rezultat
2026-06-15 09:30:00.000
2026-01-01 00:00:00.000
2026-02-01 00:00:00.000
false
[2026-03-08 00:00:00.000, 2026-06-01 00:00:00.000, 2026-12-01 00:00:00.000]
Exemplul 2: Câte zile are fiecare lună
Ziua 0 a lunii următoare este ultima zi a lunii curente.
int zileInLuna(int an, int luna) => DateTime(an, luna + 1, 0).day;
void main() {
const luni = ['ian', 'feb', 'mar', 'apr', 'mai', 'iun', 'iul', 'aug', 'sep', 'oct', 'noi', 'dec'];
for (var l = 1; l <= 12; l++) {
print('${luni[l - 1]}: ${zileInLuna(2026, l)}');
}
print('februarie 2028: ${zileInLuna(2028, 2)}');
}
Rezultat
ian: 31
feb: 28
mar: 31
apr: 30
mai: 31
iun: 30
iul: 31
aug: 31
sep: 30
oct: 31
noi: 30
dec: 31
februarie 2028: 29
Greșeli frecvente
- Numeri lunile de la 0, ca în JavaScript:
DateTime(2026, 0, 15)devine 15 decembrie 2025. - Compari date cu
<sau>: nu compilează. FoloseșteisBefore,isAftersaucompareTo.
Comenzi înrudite
DateTime.now: Creează un DateTime cu data și ora curente, în fusul orar local al calculatorului.DateTime.year: Proprietățile care dau componentele unei date: anul, luna, ziua, ora, minutul și secunda.DateTime.parse: Transformă un text în format ISO 8601 (2026-10-19 14:30) într-un DateTime; tryParse dă null la text greșit.DateTime.utc: DateTime.utc creează o dată în UTC; toUtc și toLocal transformă același moment între UTC și ora locală.Duration: Un interval de timp (de exemplu 2 ore și 30 de minute), independent de calendar; Duration.zero este durata 0.