diff options
author | Matthew Wild <mwild1@gmail.com> | 2010-11-27 01:22:43 +0000 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2010-11-27 01:22:43 +0000 |
commit | 85d3f7707ead334c38173e86e4267ef23e880666 (patch) | |
tree | 4345078b186c934f5e727947c97d26c4a6875b98 | |
parent | e058268edaa505532bee611459b253ec000df841 (diff) | |
download | prosody-85d3f7707ead334c38173e86e4267ef23e880666.tar.gz prosody-85d3f7707ead334c38173e86e4267ef23e880666.zip |
util.datetime: Fixes for more liberal timezone parsing - colon and minutes are both (independantly) optional (thanks Zash)
-rw-r--r-- | util/datetime.lua | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/util/datetime.lua b/util/datetime.lua index e853ff78..76efc21b 100644 --- a/util/datetime.lua +++ b/util/datetime.lua @@ -41,8 +41,9 @@ function parse(s) local time_offset = os_difftime(os_time(os_date("*t")), os_time(os_date("!*t"))); -- to deal with local timezone local tzd_offset = 0; if tzd ~= "" and tzd ~= "Z" then - local sign, h, m = tzd:match("([+%-])(%d%d):(%d%d)"); + local sign, h, m = tzd:match("([+%-])(%d%d):?(%d*)"); if not sign then return; end + if #m ~= 2 then m = "0"; end h, m = tonumber(h), tonumber(m); tzd_offset = h * 60 * 60 + m * 60; if sign == "-" then tzd_offset = -tzd_offset; end |