Ce face DateTime.toIso8601String
toIso8601String() returnează data în formatul internațional AAAA-LL-ZZTHH:MM:SS.mmm. Pentru datele UTC adaugă Z la final. Dacă data are microsecunde, acestea apar și ele.
Diferența față de toString(): toString() pune un spațiu între dată și oră și este gândit pentru oameni, iar toIso8601String() pune T, cum cer standardele. Este formatul de folosit în JSON, API-uri și fișiere. DateTime.parse îl citește înapoi fără pierderi.
O dată locală este scrisă fără decalaj de fus orar, deci cine o citește nu știe din ce fus provine. Pentru date trimise altor sisteme, transformă-le întâi cu toUtc().
Ce returnează
Un String.
Exemple
Exemplul 1: ISO 8601 față de toString
void main() {
var local = DateTime(2026, 10, 19, 14, 30);
var utc = DateTime.utc(2026, 10, 19, 11, 30, 5, 250);
print(local.toString());
print(local.toIso8601String());
print(utc.toIso8601String());
print(DateTime.utc(2026, 1, 1, 0, 0, 0, 0, 7).toIso8601String());
var text = utc.toIso8601String();
print(DateTime.parse(text) == utc);
}
Rezultat
2026-10-19 14:30:00.000
2026-10-19T14:30:00.000
2026-10-19T11:30:05.250Z
2026-01-01T00:00:00.000007Z
true
Exemplul 2: Salvarea unei programări în JSON
import 'dart:convert';
void main() {
var programare = {
'pacient': 'Ana Popescu',
'medic': 'Dr. Ionescu',
'la': DateTime.utc(2026, 11, 3, 8, 30).toIso8601String(),
};
var json = jsonEncode(programare);
print(json);
var citit = jsonDecode(json) as Map<String, dynamic>;
var data = DateTime.parse(citit['la'] as String);
print('${citit['pacient']}: ${data.day}.${data.month}, ora ${data.hour}:${data.minute} UTC');
}
Rezultat
{"pacient":"Ana Popescu","medic":"Dr. Ionescu","la":"2026-11-03T08:30:00.000Z"}
Ana Popescu: 3.11, ora 8:30 UTC
Greșeli frecvente
- Dai un
DateTimedirect luijsonEncode: aruncă eroare, pentru că JSON nu are tip de dată. Transformă-l cutoIso8601String().
Comenzi înrudite
DateTime.parse: Transformă un text în format ISO 8601 (2026-10-19 14:30) într-un DateTime; tryParse dă null la text greșit.DateTime.utc: DateTime.utc creează o dată în UTC; toUtc și toLocal transformă același moment între UTC și ora locală.jsonEncode: Transformă hărți, liste, texte, numere, bool și null într-un text JSON; alte obiecte trebuie să aibă toJson().