DateTime.year în Dart

Proprietățile care dau componentele unei date: anul, luna, ziua, ora, minutul și secunda.

Sintaxă
int get year
int get month    // 1..12
int get day      // 1..31
int get hour     // 0..23
int get minute   // 0..59
int get second   // 0..59

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.month direct ca index într-o listă de nume: ianuarie are 1, iar lista începe de la 0. Scrie luni[d.month - 1].
  • Încerci d.year = 2027;. Proprietățile sunt doar pentru citire; folosește copyWith(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ă.