From ec86a55b48a7192c97450c5900fe97dcfd9bec90 Mon Sep 17 00:00:00 2001 From: Zed Date: Mon, 1 Jun 2020 05:03:45 +0200 Subject: [PATCH] Fix timestamp parsing in non-UTC timezones Twitter always has +0000 in the timestamp despite being relative to your IP geolocation. Shame on you, Twitter. --- src/parserutils.nim | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/parserutils.nim b/src/parserutils.nim index 937db57..f4f7746 100644 --- a/src/parserutils.nim +++ b/src/parserutils.nim @@ -9,6 +9,8 @@ const htRegex = re"(^|[^A-z0-9-_./?])#([A-z0-9_]+)" htReplace = "$1#$2" +let localTimezone = local() + template `?`*(js: JsonNode): untyped = let j = js if j == nil: return @@ -31,7 +33,7 @@ proc getCursor*(js: JsonNode): string = proc parseTime(time: string; f: static string; flen: int): Time = if time.len != flen: return - parseTime(time, f, utc()) + parseTime(time, f, localTimezone).utc.toTime proc getDateTime*(js: JsonNode): Time = parseTime(js.getStr, "yyyy-MM-dd\'T\'HH:mm:ss\'Z\'", 20)