Fixed timezone rendering, added test

This commit is contained in:
Felix Krause 2016-11-10 19:03:46 +01:00
commit 91a0674961
2 changed files with 17 additions and 4 deletions

View file

@ -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,20 +825,20 @@ 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('+')
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('+')
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('+')
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)