Ce face DateTime.isBefore
Datele nu se compară cu < și >. Folosești a.isBefore(b) (a este mai devreme), a.isAfter(b) (a este mai târziu) și a.isAtSameMomentAs(b) (același moment). Toate compară momentele, indiferent dacă datele sunt UTC sau locale.
Operatorul == este mai strict: două date sunt egale doar dacă reprezintă același moment și sunt amândouă UTC sau amândouă locale. De aceea, pentru „același moment” preferă isAtSameMomentAs.
Pentru sortare, DateTime implementează Comparable: a.compareTo(b) dă un număr negativ, zero sau pozitiv, iar lista.sort() funcționează direct.
Parametri
| Parametru | Descriere |
|---|---|
other |
Data cu care se compară. |
Ce returnează
Un bool.
Exemple
Exemplul 1: Comparații simple
void main() {
var a = DateTime.utc(2026, 6, 15, 9);
var b = DateTime.utc(2026, 6, 15, 12);
print(a.isBefore(b));
print(a.isAfter(b));
print(a.isAtSameMomentAs(b));
print(a.isBefore(a));
var c = a.toLocal();
print(a.isAtSameMomentAs(c));
print(a == c);
print(a.compareTo(b));
}
Rezultat
true
false
false
false
true
false
-1
Exemplul 2: Este o reducere activă?
bool activa(DateTime moment, DateTime start, DateTime sfarsit) =>
!moment.isBefore(start) && moment.isBefore(sfarsit);
void main() {
var start = DateTime.utc(2026, 11, 27);
var sfarsit = DateTime.utc(2026, 12, 1);
for (var m in [DateTime.utc(2026, 11, 26, 23), DateTime.utc(2026, 11, 27), DateTime.utc(2026, 11, 30, 18),
DateTime.utc(2026, 12, 1)]) {
print('${m.toIso8601String()}: ${activa(m, start, sfarsit) ? 'Black Friday!' : 'preț normal'}');
}
}
Rezultat
2026-11-26T23:00:00.000Z: preț normal
2026-11-27T00:00:00.000Z: Black Friday!
2026-11-30T18:00:00.000Z: Black Friday!
2026-12-01T00:00:00.000Z: preț normal
Greșeli frecvente
- Folosești
==între o dată UTC și una locală pentru același moment: rezultatul estefalse. FoloseșteisAtSameMomentAs. - Verifici un interval cu
isAfter(start)și ratezi exact momentul de început. Pentru „de la start inclusiv” scrie!m.isBefore(start).
Comenzi înrudite
DateTime.difference: Calculează timpul dintre două date, ca Duration: this minus other.DateTime: Un moment în timp (dată și oră), în fusul orar local sau în UTC. Constructorul creează o dată locală.Comparable: Interfața pentru obiecte care au o ordine naturală; compareTo dă negativ, zero sau pozitiv.DateTime.utc: DateTime.utc creează o dată în UTC; toUtc și toLocal transformă același moment între UTC și ora locală.