fix #17072: add times.dateTime with ISO 8601 order (#18590)

* fix #17072: add times.dateTime with ISO 8601 order

* address comments
This commit is contained in:
Timothee Cour 2021-07-27 21:38:19 -07:00 • committed by GitHub
commit 4c1202972a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 12 deletions

View file

@ -1333,14 +1333,13 @@ proc now*(): DateTime {.tags: [TimeEffect], benign.} =
## `cpuTime` instead, depending on the use case.
getTime().local
proc initDateTime*(monthday: MonthdayRange, month: Month, year: int,
hour: HourRange, minute: MinuteRange, second: SecondRange,
nanosecond: NanosecondRange,
zone: Timezone = local()): DateTime =
proc dateTime*(year: int, month: Month, monthday: MonthdayRange,
hour: HourRange = 0, minute: MinuteRange = 0, second: SecondRange = 0,
nanosecond: NanosecondRange = 0,
zone: Timezone = local()): DateTime =
## Create a new `DateTime <#DateTime>`_ in the specified timezone.
runnableExamples:
let dt1 = initDateTime(30, mMar, 2017, 00, 00, 00, 00, utc())
doAssert $dt1 == "2017-03-30T00:00:00Z"
assert $dateTime(2017, mMar, 30, zone = utc()) == "2017-03-30T00:00:00Z"
assertValidDate monthday, month, year
let dt = DateTime(
@ -1356,12 +1355,20 @@ proc initDateTime*(monthday: MonthdayRange, month: Month, year: int,
proc initDateTime*(monthday: MonthdayRange, month: Month, year: int,
hour: HourRange, minute: MinuteRange, second: SecondRange,
zone: Timezone = local()): DateTime =
nanosecond: NanosecondRange,
zone: Timezone = local()): DateTime {.deprecated: "use `dateTime`".} =
## Create a new `DateTime <#DateTime>`_ in the specified timezone.
runnableExamples:
let dt1 = initDateTime(30, mMar, 2017, 00, 00, 00, utc())
doAssert $dt1 == "2017-03-30T00:00:00Z"
initDateTime(monthday, month, year, hour, minute, second, 0, zone)
runnableExamples("--warning:deprecated:off"):
assert $initDateTime(30, mMar, 2017, 00, 00, 00, 00, utc()) == "2017-03-30T00:00:00Z"
dateTime(year, month, monthday, hour, minute, second, nanosecond, zone)
proc initDateTime*(monthday: MonthdayRange, month: Month, year: int,
hour: HourRange, minute: MinuteRange, second: SecondRange,
zone: Timezone = local()): DateTime {.deprecated: "use `dateTime`".} =
## Create a new `DateTime <#DateTime>`_ in the specified timezone.
runnableExamples("--warning:deprecated:off"):
assert $initDateTime(30, mMar, 2017, 00, 00, 00, utc()) == "2017-03-30T00:00:00Z"
dateTime(year, month, monthday, hour, minute, second, 0, zone)
proc `+`*(dt: DateTime, dur: Duration): DateTime =
runnableExamples: