Ce face DateTime.now
DateTime.now() citește ceasul sistemului și returnează momentul curent, în ora locală. Rezultatul este diferit la fiecare rulare, așa că în teste și exemple reproductibile este mai bine să primești data ca parametru.
Pentru ora curentă în UTC există DateTime.timestamp() (Dart 3.0) sau DateTime.now().toUtc(). Pentru a măsura cât durează o operație nu folosi diferența a două now(): ceasul sistemului poate fi ajustat între timp. Folosește Stopwatch.
Pentru data de azi fără oră, construiește o dată nouă: DateTime(acum.year, acum.month, acum.day).
Ce returnează
Un DateTime local cu momentul curent.
Exemple
Exemplul 1: Data și ora curentă
Rezultatul depinde de momentul rulării; mai jos este un exemplu de ieșire.
void main() {
var acum = DateTime.now();
print(acum);
print('Azi este ${acum.day}.${acum.month}.${acum.year}');
print('Ora: ${acum.hour}:${acum.minute.toString().padLeft(2, '0')}');
var azi = DateTime(acum.year, acum.month, acum.day);
print(azi);
}
Rezultat posibil (diferă la fiecare rulare)
2026-10-19 14:07:33.512408
Azi este 19.10.2026
Ora: 14:07
2026-10-19 00:00:00.000
Exemplul 2: Câte zile au mai rămas până la un eveniment
Funcția primește data de azi ca parametru, așa că o putem testa cu o dată fixă; în program o apelezi cu DateTime.now().
int zilePana(DateTime azi, DateTime eveniment) {
var a = DateTime.utc(azi.year, azi.month, azi.day);
var b = DateTime.utc(eveniment.year, eveniment.month, eveniment.day);
return b.difference(a).inDays;
}
void main() {
var azi = DateTime(2026, 10, 19, 14, 7);
print('Până la Crăciun: ${zilePana(azi, DateTime(2026, 12, 25))} zile');
print('Până la 1 Decembrie: ${zilePana(azi, DateTime(2026, 12, 1))} zile');
var acum = DateTime.now();
print(zilePana(acum, acum) == 0);
}
Rezultat
Până la Crăciun: 67 zile
Până la 1 Decembrie: 43 zile
true
Greșeli frecvente
- Măsori viteza unui cod cu două apeluri
DateTime.now(). FoloseșteStopwatch, care nu depinde de ceasul sistemului. - Compari
DateTime.now()cu o dată fără oră și te miri că nu sunt egale:now()conține și ora, minutele și microsecundele.
Comenzi înrudite
DateTime: Un moment în timp (dată și oră), în fusul orar local sau în UTC. Constructorul creează o dată locală.DateTime.utc: DateTime.utc creează o dată în UTC; toUtc și toLocal transformă același moment între UTC și ora locală.Stopwatch: Un cronometru pentru măsurarea timpului scurs; start() îl pornește, stop() îl oprește, isRunning spune dacă merge.DateTime.difference: Calculează timpul dintre două date, ca Duration: this minus other.