Метод toIso8601String
Возвращает строковое представление в полном формате ISO-8601.
Формат: yyyy-MM-ddTHH:mm:ss.mmmuuuZ для времени UTC и yyyy-MM-ddTHH:mm:ss.mmmuuu (без конечного "Z") для местного/не-UTC времени, где:
-
yyyy— четырехзначное (возможно отрицательное) представление года, если год в диапазоне от -9999 до 9999, в противном случае — шестизначное с знаком представление года. -
MM— месяц в диапазоне от 01 до 12, -
dd— день месяца в диапазоне от 01 до 31, -
HH— часы в диапазоне от 00 до 23, -
mm— минуты в диапазоне от 00 до 59, -
ss— секунды в диапазоне от 00 до 59 (без високочных секунд), -
mmm— миллисекунды в диапазоне от 000 до 999, и -
uuu— микросекунды в диапазоне от 001 до 999. Если микросекунда равна 0, эта часть пропускается.
Полученную строку можно обработать с помощью метода parse.
final moonLanding = DateTime.utc(1969, 7, 20, 20, 18, 04); final isoDate = moonLanding.toIso8601String(); print(isoDate); // 1969-07-20T20:18:04.000Z
Реализация
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);
String us = microsecond == 0 ? "" : _threeDigits(microsecond);
if (isUtc) {
return "$y-$m-${d}T$h:$min:$sec.$ms${us}Z";
} else {
return "$y-$m-${d}T$h:$min:$sec.$ms$us";
}
}
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-core/DateTime/toIso8601String.html