// 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 thatIf microsecond equals 0, then this part is omitted.
 * @author sgrekhov@unipro.ru
 */
import "../../../Utils/expect.dart";

main() {
  var date = new DateTime.fromMillisecondsSinceEpoch(1, isUtc: true);
  Expect.equals("1970-01-01T00:00:00.001Z", date.toIso8601String());
}
