Calendar v0.17.2 Calendar.DateTime.Format
Summary
Functions
Takes a DateTime. Returns a string with the date-time in RFC 2616 format. This format is used in the HTTP protocol. Note that the date-time will always be “shifted” to UTC
Format as ISO 8601 extended (alias for rfc3339/1)
Format as ISO 8601 Basic
Takes datetime and returns UTC timestamp in JavaScript format. That is milliseconds since 1970 unix epoch
Format a DateTime as an RFC 2822 timestamp
Takes a DateTime. Returns a string with the time in RFC3339 (a profile of ISO 8601)
Takes a DateTime and a integer for number of decimals. Returns a string with the time in RFC3339 (a profile of ISO 8601)
Format a DateTime as an RFC 822 timestamp
Format a DateTime as an RFC 850 timestamp
Unix time. Unix time is defined as seconds since 1970-01-01 00:00:00 UTC without leap seconds
Like unix_time but returns a float with fractional seconds. If the microsecond of the DateTime is nil, the fractional seconds will be treated as 0.0 as seen in the second example below
Functions
Takes a DateTime. Returns a string with the date-time in RFC 2616 format. This format is used in the HTTP protocol. Note that the date-time will always be “shifted” to UTC.
Example
# The time is 6:09 in the morning in Montevideo, but 9:09 GMT/UTC.
iex> Calendar.DateTime.from_erl!({{2014, 9, 6}, {6, 9, 8}}, "America/Montevideo") |> Calendar.DateTime.Format.httpdate
"Sat, 06 Sep 2014 09:09:08 GMT"
Format as ISO 8601 Basic
Examples
iex> Calendar.DateTime.from_erl!({{2014, 9, 26}, {20, 10, 20}}, "Etc/UTC",5) |> Calendar.DateTime.Format.iso8601_basic
"20140926T201020Z"
iex> Calendar.DateTime.from_erl!({{2014, 9, 26}, {17, 10, 20}}, "America/Montevideo",5) |> Calendar.DateTime.Format.iso8601_basic
"20140926T171020-0300"
Takes datetime and returns UTC timestamp in JavaScript format. That is milliseconds since 1970 unix epoch.
These millisecond numbers can be used to create new Javascript Dates in JavaScript like so: new Date(1000000000985) The UTC value of the javascript date will be the same as that of the Elixir Calendar.DateTime.
Examples
iex> Calendar.DateTime.from_erl!({{2001,09,09},{03,46,40}}, "Europe/Copenhagen", 985085) |> Calendar.DateTime.Format.js_ms
1000000000985
iex> Calendar.DateTime.from_erl!({{2001,09,09},{03,46,40}}, "Europe/Copenhagen", 98508) |> Calendar.DateTime.Format.js_ms
1000000000098
Format a DateTime as an RFC 2822 timestamp.
Examples
iex> Calendar.DateTime.from_erl!({{2010, 3, 13}, {11, 23, 03}}, "America/Los_Angeles") |> rfc2822
"Sat, 13 Mar 2010 11:23:03 -0800"
iex> Calendar.DateTime.from_erl!({{2010, 3, 13}, {11, 23, 03}}, "Etc/UTC") |> rfc2822
"Sat, 13 Mar 2010 11:23:03 +0000"
Takes a DateTime. Returns a string with the time in RFC3339 (a profile of ISO 8601)
Examples
Without microseconds
iex> Calendar.DateTime.from_erl!({{2014, 9, 26}, {17, 10, 20}}, "America/Montevideo") |> Calendar.DateTime.Format.rfc3339
"2014-09-26T17:10:20-03:00"
With microseconds
iex> Calendar.DateTime.from_erl!({{2014, 9, 26}, {17, 10, 20, 5}}, "America/Montevideo") |> Calendar.DateTime.Format.rfc3339
"2014-09-26T17:10:20.000005-03:00"
Takes a DateTime and a integer for number of decimals. Returns a string with the time in RFC3339 (a profile of ISO 8601)
The decimal_count integer defines the number fractional second digits. The decimal_count must be between 0 and 6.
Fractional seconds are not rounded up, but rather trucated.
Examples
DateTime does not have microseconds, but 3 digits of fractional seconds requested. We assume 0 microseconds and display three zeroes.
iex> Calendar.DateTime.from_erl!({{2014, 9, 26}, {17, 10, 20}}, "America/Montevideo") |> Calendar.DateTime.Format.rfc3339(3)
"2014-09-26T17:10:20.000-03:00"
DateTime has microseconds and decimal count set to 6
iex> Calendar.DateTime.from_erl!({{2014, 9, 26}, {17, 10, 20}}, "America/Montevideo",{5, 6}) |> Calendar.DateTime.Format.rfc3339(6)
"2014-09-26T17:10:20.000005-03:00"
DateTime has microseconds and decimal count set to 5
iex> Calendar.DateTime.from_erl!({{2014, 9, 26}, {17, 10, 20}}, "America/Montevideo",{5, 6}) |> Calendar.DateTime.Format.rfc3339(5)
"2014-09-26T17:10:20.00000-03:00"
DateTime has microseconds and decimal count set to 0
iex> Calendar.DateTime.from_erl!({{2014, 9, 26}, {17, 10, 20}}, "America/Montevideo",{5, 6}) |> Calendar.DateTime.Format.rfc3339(0)
"2014-09-26T17:10:20-03:00"
Format a DateTime as an RFC 822 timestamp.
Note that this format is old and uses only 2 digits to denote the year!
Examples
iex> Calendar.DateTime.from_erl!({{2010, 3, 13}, {11, 23, 03}}, "America/Los_Angeles") |> rfc822
"Sat, 13 Mar 10 11:23:03 -0800"
iex> Calendar.DateTime.from_erl!({{2010, 3, 13}, {11, 23, 03}}, "Etc/UTC") |> rfc822
"Sat, 13 Mar 10 11:23:03 +0000"
Format a DateTime as an RFC 850 timestamp.
Note that this format is old and uses only 2 digits to denote the year!
Examples
iex> Calendar.DateTime.from_erl!({{2010, 3, 13}, {11, 23, 03}}, "America/Los_Angeles") |> rfc850
"Sat, 13-Mar-10 11:23:03 PST"
Unix time. Unix time is defined as seconds since 1970-01-01 00:00:00 UTC without leap seconds.
Examples
iex> Calendar.DateTime.from_erl!({{2001,09,09},{03,46,40}}, "Europe/Copenhagen", {55, 2}) |> Calendar.DateTime.Format.unix
1_000_000_000
Like unix_time but returns a float with fractional seconds. If the microsecond of the DateTime is nil, the fractional seconds will be treated as 0.0 as seen in the second example below:
Examples
iex> Calendar.DateTime.from_erl!({{2001,09,09},{03,46,40}}, "Europe/Copenhagen", {985085, 6}) |> Calendar.DateTime.Format.unix_micro
1_000_000_000.985085
iex> Calendar.DateTime.from_erl!({{2001,09,09},{03,46,40}}, "Europe/Copenhagen") |> Calendar.DateTime.Format.unix_micro
1_000_000_000.0