summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorAndreas Rumpf <rumpf_a@web.de>2016-11-14 16:44:01 +0100
committerGitHub <noreply@github.com>2016-11-14 16:44:01 +0100
commit4a4a3cdf67d3bd80d18ebe01132d67a5b6400b3a (patch)
tree6fb5ad808569e14f66ef43847b777ce080f37a35 /lib
parenta29387424a1395052c6da164ebe0168698eae21e (diff)
parent91a067496119ce1b3b6b5401e029e7d6c6ed4c9f (diff)
downloadNim-4a4a3cdf67d3bd80d18ebe01132d67a5b6400b3a.tar.gz
Merge pull request #5009 from flyx/timezonefix2
Fixed timezone sign error
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/times.nim15
1 files changed, 8 insertions, 7 deletions
diff --git a/lib/pure/times.nim b/lib/pure/times.nim
index 1e869d301..f74003820 100644
--- a/lib/pure/times.nim
+++ b/lib/pure/times.nim
@@ -732,6 +732,7 @@ const
   secondsInMin = 60
   secondsInHour = 60*60
   secondsInDay = 60*60*24
+  minutesInHour = 60
   epochStartYear = 1970
 
 proc formatToken(info: TimeInfo, token: string, buf: var string) =
@@ -824,21 +825,21 @@ proc formatToken(info: TimeInfo, token: string, buf: var string) =
     buf.add(fyear)
   of "z":
     let hours = abs(info.timezone) div secondsInHour
-    if info.timezone < 0: buf.add('-')
-    else: buf.add('+')
+    if info.timezone <= 0: buf.add('+')
+    else: buf.add('-')
     buf.add($hours)
   of "zz":
     let hours = abs(info.timezone) div secondsInHour
-    if info.timezone < 0: buf.add('-')
-    else: buf.add('+')
+    if info.timezone <= 0: buf.add('+')
+    else: buf.add('-')
     if hours < 10: buf.add('0')
     buf.add($hours)
   of "zzz":
     let
       hours = abs(info.timezone) div secondsInHour
-      minutes = abs(info.timezone) mod 60
-    if info.timezone < 0: buf.add('-')
-    else: buf.add('+')
+      minutes = (abs(info.timezone) div secondsInMin) mod minutesInHour
+    if info.timezone <= 0: buf.add('+')
+    else: buf.add('-')
     if hours < 10: buf.add('0')
     buf.add($hours)
     buf.add(':')