// 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());
}
