times - remove unneeded negative sign when parsing formats z and zz (#9631)

* fix wrong utcoffset sign for formats z and zz

* add tests for the timezone offset formats
This commit is contained in:
pgkos
2018-11-06 22:29:23 +01:00
committed by Arne Döring
parent 73c306258b
commit b9cdad7497
2 changed files with 12 additions and 3 deletions

View File

@@ -2026,9 +2026,9 @@ proc parsePattern(input: string, pattern: FormatPattern, i: var int,
var offset = 0
case pattern
of z:
offset = takeInt(1..2) * -3600
offset = takeInt(1..2) * 3600
of zz:
offset = takeInt(2..2) * -3600
offset = takeInt(2..2) * 3600
of zzz:
offset.inc takeInt(2..2) * 3600
if input[i] != ':':
@@ -2508,4 +2508,4 @@ proc zoneInfoFromUtc*(zone: Timezone, time: Time): ZonedTime
proc zoneInfoFromTz*(zone: Timezone, adjTime: Time): ZonedTime
{.deprecated: "Use zonedTimeFromAdjTime instead".} =
## **Deprecated since v0.19.0:** use the ``zonedTimeFromAdjTime`` instead.
zone.zonedTimeFromAdjTime(adjTime)
zone.zonedTimeFromAdjTime(adjTime)

View File

@@ -84,6 +84,15 @@ template runTimezoneTests() =
# formatting timezone as 'Z' for UTC
parseTest("2001-01-12T22:04:05Z", "yyyy-MM-dd'T'HH:mm:ss" & tzFormat,
"2001-01-12T22:04:05Z", 11)
# timezone offset formats
parseTest("2001-01-12T15:04:05 +7", "yyyy-MM-dd'T'HH:mm:ss z",
"2001-01-12T08:04:05Z", 11)
parseTest("2001-01-12T15:04:05 +07", "yyyy-MM-dd'T'HH:mm:ss zz",
"2001-01-12T08:04:05Z", 11)
parseTest("2001-01-12T15:04:05 +07:00", "yyyy-MM-dd'T'HH:mm:ss zzz",
"2001-01-12T08:04:05Z", 11)
parseTest("2001-01-12T15:04:05 +07:30:59", "yyyy-MM-dd'T'HH:mm:ss zzzz",
"2001-01-12T07:33:06Z", 11)
# Kitchen = "3:04PM"
parseTestTimeOnly("3:04PM", "h:mmtt", "15:04:00")