From 19daa3d793dc97f476cc25feafad77939ed2e819 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Fri, 3 Jun 2022 08:52:44 +0300 Subject: [PATCH] add parse_iso8691_date function --- lib/misc.lua | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/misc.lua b/lib/misc.lua index 198bf14..cd07596 100644 --- a/lib/misc.lua +++ b/lib/misc.lua @@ -1,4 +1,4 @@ -function parseHexColor(text) +function parse_hex_color(text) local r = tonumber('0x' .. string.sub(text, -8, -7)) local g = tonumber('0x' .. string.sub(text, -6, -5)) local b = tonumber('0x' .. string.sub(text, -4, -3)) @@ -7,3 +7,18 @@ function parseHexColor(text) return r, g, b, a end +function parse_iso8601_date(json_date) + local pattern = "(%d+)%-(%d+)%-(%d+)%a(%d+)%:(%d+)%:([%d%.]+)([Z%+%-])(%d?%d?)%:?(%d?%d?)" + local year, month, day, hour, minute, + seconds, offsetsign, offsethour, offsetmin = json_date:match(pattern) + local timestamp = os.time{year = year, month = month, + day = day, hour = hour, min = minute, sec = seconds} + local offset = 0 + if offsetsign ~= 'Z' then + offset = tonumber(offsethour) * 60 + tonumber(offsetmin) + if xoffset == "-" then offset = offset * -1 end + end + + return timestamp + offset +end +