Ce face DateTime.parse
DateTime.parse înțelege formatul standard ISO 8601 și variante apropiate: '2026-10-19', '2026-10-19 14:30', '2026-10-19T14:30:00', '20261019'. Dacă textul se termină cu Z sau are un decalaj (+03:00), rezultatul este în UTC; altfel este în ora locală.
La un text pe care nu-l înțelege, parse aruncă FormatException, iar tryParse returnează null. Formatul românesc 19.10.2026 nu este acceptat: îl desfaci singur, cu split('.'), sau folosești pachetul intl.
Valorile în afara intervalului sunt reportate, ca la constructor: '2026-02-30' devine 2 martie, fără eroare.
Parametri
| Parametru | Descriere |
|---|---|
formattedString |
Textul cu data, în format ISO 8601. |
Ce returnează
parse: un DateTime. tryParse: un DateTime?.
Exemple
Exemplul 1: Formate acceptate
void main() {
print(DateTime.parse('2026-10-19'));
print(DateTime.parse('2026-10-19 14:30'));
print(DateTime.parse('2026-10-19T14:30:15.250'));
print(DateTime.parse('20261019T143000'));
var utc = DateTime.parse('2026-10-19T11:30:00Z');
print('$utc ${utc.isUtc}');
print(DateTime.parse('2026-10-19T14:30:00+03:00'));
print(DateTime.parse('2026-02-30'));
}
Rezultat
2026-10-19 00:00:00.000
2026-10-19 14:30:00.000
2026-10-19 14:30:15.250
2026-10-19 14:30:00.000
2026-10-19 11:30:00.000Z true
2026-10-19 11:30:00.000Z
2026-03-02 00:00:00.000
Exemplul 2: Text greșit: tryParse și formatul românesc
DateTime? dinFormatRomanesc(String s) {
var p = s.split('.');
if (p.length != 3) return null;
var zi = p[0].padLeft(2, '0'), luna = p[1].padLeft(2, '0');
return DateTime.tryParse('${p[2]}-$luna-$zi');
}
void main() {
for (var t in ['2026-10-19', '19.10.2026', 'mâine']) {
print('$t → ${DateTime.tryParse(t)}');
}
print(dinFormatRomanesc('19.10.2026'));
print(dinFormatRomanesc('1.3.2026'));
try {
DateTime.parse('19/10/2026');
} on FormatException catch (e) {
print('Eroare: ${e.message}');
}
}
Rezultat
2026-10-19 → 2026-10-19 00:00:00.000
19.10.2026 → null
mâine → null
2026-10-19 00:00:00.000
2026-03-01 00:00:00.000
Eroare: Invalid date format
Greșeli frecvente
- Te aștepți ca
parsesă respingă'2026-02-30'. Data este reportată la 2 martie; dacă vrei validare, compară ziua rezultatului cu cea din text. - Uiți că un text cu
Zdă o dată UTC:hourva fi ora UTC, nu cea locală. ApeleazătoLocal()pentru afișare.
Comenzi înrudite
DateTime.toIso8601String: Scrie data ca text în formatul standard ISO 8601 (2026-10-19T14:30:00.000), bun pentru JSON și fișiere.DateTime: Un moment în timp (dată și oră), în fusul orar local sau în UTC. Constructorul creează o dată locală.FormatException: Excepția aruncată când un text nu are formatul așteptat (int.parse(‘abc’), JSON greșit, dată invalidă).int.parse: Transformă un text în număr întreg; parse aruncă FormatException la text greșit, tryParse returnează null.