projects
/
prosody.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
util.stanza: Iterate on childtags instead of all childs.
[prosody.git]
/
util
/
datetime.lua
diff --git
a/util/datetime.lua
b/util/datetime.lua
index e853ff785d49c81c14a31caeb00176b5198b4c63..301a49a5e9cd60035d4603919428f6192cd1058c 100644
(file)
--- a/
util/datetime.lua
+++ b/
util/datetime.lua
@@
-41,13
+41,14
@@
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 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 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
end
h, m = tonumber(h), tonumber(m);
tzd_offset = h * 60 * 60 + m * 60;
if sign == "-" then tzd_offset = -tzd_offset; end
end
- sec =
sec + time_offset +
tzd_offset;
+ sec =
(sec + time_offset) -
tzd_offset;
return os_time({year=year, month=month, day=day, hour=hour, min=min, sec=sec});
end
end
return os_time({year=year, month=month, day=day, hour=hour, min=min, sec=sec});
end
end