blob: c18b888fee97314a79393c9478c2542f6cad622b [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 string returned by toIso8601String() can be parsed
/// back using parse
/// @author sgrekhov@unipro.ru
import "../../../Utils/expect.dart";
main() {
var now = new DateTime.now();
var date = DateTime.parse(now.toIso8601String());
Expect.equals(now.toIso8601String(), date.toIso8601String());
Expect.equals(now.microsecondsSinceEpoch, date.microsecondsSinceEpoch);
}