blob: e92eb13a97fdcbc7299c07f82e70bbcbbdac313c [file] [log] [blame]
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
/// @assertion String toIso8601String()
/// Returns an ISO-8601 full-precision extended format representation.
///
/// The format is yyyy-MM-ddTHH:mm:ss.mmmuuuZ for UTC time, and
/// yyyy-MM-ddTHH:mm:ss.mmmuuu (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),
/// mmm are milliseconds in the range 000 to 999, and
/// uuu are microseconds in the range 001 to 999. If microsecond equals 0,
/// then this part is omitted.
/// The resulting string can be parsed back using parse.
/// @description Check that non-UTC date returned correctly
/// @author sgrekhov@unipro.ru
import "../../../Utils/expect.dart";
main() {
var iso8601string = "1970-01-13T13:33:44.123456";
var date = DateTime.parse(iso8601string);
Expect.equals(iso8601string, date.toIso8601String());
}