aboutsummaryrefslogtreecommitdiff
path: root/src/jlib.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/jlib.erl')
-rw-r--r--src/jlib.erl39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/jlib.erl b/src/jlib.erl
index 03bf99805..de75ca0a9 100644
--- a/src/jlib.erl
+++ b/src/jlib.erl
@@ -55,8 +55,10 @@
is_iq_request_type/1,
iq_to_xml/1,
parse_xdata_submit/1,
- timestamp_to_iso/1,
- timestamp_to_xml/1,
+ timestamp_to_iso/1, % TODO: Remove once XEP-0091 is Obsolete
+ timestamp_to_iso/2,
+ timestamp_to_xml/4,
+ timestamp_to_xml/1, % TODO: Remove once XEP-0091 is Obsolete
now_to_utc_string/1,
now_to_local_string/1,
datetime_string_to_timestamp/1,
@@ -553,14 +555,45 @@ rsm_encode_count(Count, Arr)->
i2l(I) when is_integer(I) -> integer_to_list(I);
i2l(L) when is_list(L) -> L.
+%% Timezone = utc | {Hours, Minutes}
+%% Hours = integer()
+%% Minutes = integer()
+timestamp_to_iso({{Year, Month, Day}, {Hour, Minute, Second}}, Timezone) ->
+ Timestamp_string =
+ lists:flatten(
+ io_lib:format("~4..0w-~2..0w-~2..0wT~2..0w:~2..0w:~2..0w",
+ [Year, Month, Day, Hour, Minute, Second])),
+ Timezone_string =
+ case Timezone of
+ utc -> "Z";
+ {TZh, TZm} ->
+ Sign = case TZh >= 0 of
+ true -> "+";
+ false -> "-"
+ end,
+ io_lib:format("~s~2..0w:~2..0w", [Sign, abs(TZh),TZm])
+ end,
+ {Timestamp_string, Timezone_string}.
+
timestamp_to_iso({{Year, Month, Day}, {Hour, Minute, Second}}) ->
lists:flatten(
io_lib:format("~4..0w~2..0w~2..0wT~2..0w:~2..0w:~2..0w",
[Year, Month, Day, Hour, Minute, Second])).
+timestamp_to_xml(DateTime, Timezone, FromJID, Desc) ->
+ {T_string, Tz_string} = timestamp_to_iso(DateTime, Timezone),
+ Text = [{xmlcdata, Desc}],
+ From = jlib:jid_to_string(FromJID),
+ {xmlelement, "delay",
+ [{"xmlns", ?NS_DELAY},
+ {"from", From},
+ {"stamp", T_string ++ Tz_string}],
+ Text}.
+
+%% TODO: Remove this function once XEP-0091 is Obsolete
timestamp_to_xml({{Year, Month, Day}, {Hour, Minute, Second}}) ->
{xmlelement, "x",
- [{"xmlns", ?NS_DELAY},
+ [{"xmlns", ?NS_DELAY91},
{"stamp", lists:flatten(
io_lib:format("~4..0w~2..0w~2..0wT~2..0w:~2..0w:~2..0w",
[Year, Month, Day, Hour, Minute, Second]))}],