Returns an ISO-8601 full-precision extended format representation.
The format is yyyy-MM-ddTHH:mm:ss.sssZ
for UTC time, and
yyyy-MM-ddTHH:mm:ss.sss
(no trailing "Z") for local/non-UTC time,
where:
-
yyyy
is a, possibly negative, four digit representation of the year, if the year is in the range -9999 to 9999, otherwise it is a signed six digit representation of the year. MM
is the month in the range 01 to 12,dd
is the day of the month in the range 01 to 31,HH
are hours in the range 00 to 23,mm
are minutes in the range 00 to 59,ss
are seconds in the range 00 to 59 (no leap seconds), andsss
are milliseconds in the range 000 to 999.
The resulting string can be parsed back using parse.
Source
String toIso8601String() {
String y = (year >= -9999 && year <= 9999) ? _fourDigits(year)
: _sixDigits(year);
String m = _twoDigits(month);
String d = _twoDigits(day);
String h = _twoDigits(hour);
String min = _twoDigits(minute);
String sec = _twoDigits(second);
String ms = _threeDigits(millisecond);
if (isUtc) {
return "$y-$m-${d}T$h:$min:$sec.${ms}Z";
} else {
return "$y-$m-${d}T$h:$min:$sec.$ms";
}
}