Spec-Zone.ru › Dart 2

dart:core

Метод toIso8601String

String 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API