Ce face DateTime.year
Fiecare DateTime are proprietăți pentru componentele sale: year, month (1 = ianuarie), day (ziua din lună), hour (0–23), minute, second. Există și millisecond și microsecond. Toate sunt doar pentru citire.
Valorile sunt exprimate în fusul datei: pentru o dată UTC primești ora UTC, pentru una locală ora locală. Pentru a schimba o componentă, creează o dată nouă cu copyWith.
Dart nu are o funcție de formatare de tipul format('dd.MM.yyyy') în dart:core. Construiești textul din aceste proprietăți și padLeft, sau folosești pachetul intl (DateFormat).
Ce returnează
Un int.
Exemple
Exemplul 1: Componentele unei date
void main() {
var d = DateTime(2026, 10, 19, 14, 5, 9);
print('an: ${d.year}');
print('lună: ${d.month}');
print('zi: ${d.day}');
print('oră: ${d.hour}');
print('minut: ${d.minute}');
print('secundă: ${d.second}');
}
Rezultat
an: 2026
lună: 10
zi: 19
oră: 14
minut: 5
secundă: 9
Exemplul 2: Formatare românească
const luni = ['ianuarie', 'februarie', 'martie', 'aprilie', 'mai', 'iunie', 'iulie',
'august', 'septembrie', 'octombrie', 'noiembrie', 'decembrie'];
String doua(int n) => n.toString().padLeft(2, '0');
String scurt(DateTime d) => '${doua(d.day)}.${doua(d.month)}.${d.year} ${doua(d.hour)}:${doua(d.minute)}';
String lung(DateTime d) => '${d.day} ${luni[d.month - 1]} ${d.year}';
void main() {
var d = DateTime(2026, 3, 8, 9, 5);
print(scurt(d));
print(lung(d));
print(lung(DateTime(2026, 12, 1)));
}
Rezultat
08.03.2026 09:05
8 martie 2026
1 decembrie 2026
Exemplul 3: Vârsta în ani împliniți
int varsta(DateTime nastere, DateTime azi) {
var ani = azi.year - nastere.year;
if (azi.month < nastere.month || (azi.month == nastere.month && azi.day < nastere.day)) {
ani--;
}
return ani;
}
void main() {
var azi = DateTime(2026, 10, 19);
print(varsta(DateTime(2004, 3, 15), azi));
print(varsta(DateTime(2004, 12, 1), azi));
print(varsta(DateTime(2008, 10, 19), azi));
}
Rezultat
22
21
18
Greșeli frecvente
- Folosești
d.monthdirect ca index într-o listă de nume: ianuarie are 1, iar lista începe de la 0. Scrieluni[d.month - 1]. - Încerci
d.year = 2027;. Proprietățile sunt doar pentru citire; foloseștecopyWith(year: 2027).
Comenzi înrudite
DateTime.weekday: Ziua săptămânii pentru o dată: 1 pentru luni, …, 7 pentru duminică.DateTime.copyWith: Creează o dată nouă, copiind-o pe cea existentă și schimbând doar componentele date ca argumente.DateTime: Un moment în timp (dată și oră), în fusul orar local sau în UTC. Constructorul creează o dată locală.String.padLeft: Completează textul în stânga (padLeft) sau în dreapta (padRight) până ajunge la o lungime dată.