Calendar v0.17.2 Calendar.NaiveDateTime.Interval

A NaiveDateTime.Interval consists of a start and an end NaiveDateTime.

Summary

Functions

Formats interval in ISO 8601 extended format

Formats interval in ISO 8601 basic format

Types

t()
t() :: %Calendar.NaiveDateTime.Interval{from: %NaiveDateTime{calendar: term, day: term, hour: term, microsecond: term, minute: term, month: term, second: term, year: term}, to: %NaiveDateTime{calendar: term, day: term, hour: term, microsecond: term, minute: term, month: term, second: term, year: term}}

Functions

iso8601(interval)

Formats interval in ISO 8601 extended format.

Example:

# With a `NaiveDateTime.Interval`
iex> %Calendar.NaiveDateTime.Interval{from: {{2016, 2, 27}, {10, 0, 0}} |> Calendar.NaiveDateTime.from_erl!, to: {{2016, 3, 1}, {11, 0, 0}} |> Calendar.NaiveDateTime.from_erl!} |> Calendar.NaiveDateTime.Interval.iso8601
"2016-02-27T10:00:00/2016-03-01T11:00:00"
# Also works with a `DateTime.Interval`
iex> %Calendar.DateTime.Interval{from: {{2016, 2, 27}, {10, 0, 0}} |> Calendar.DateTime.from_erl!("Etc/UTC"), to: {{2016, 3, 1}, {11, 0, 0}} |> Calendar.DateTime.from_erl!("Etc/UTC")} |> Calendar.NaiveDateTime.Interval.iso8601
"2016-02-27T10:00:00/2016-03-01T11:00:00"
iso8601_basic(interval)

Formats interval in ISO 8601 basic format.

Example:

iex> %Calendar.NaiveDateTime.Interval{from: {{2016, 2, 27}, {10, 0, 0}}, to: {{2016, 3, 1}, {11, 0, 0}}} |> Calendar.NaiveDateTime.Interval.iso8601_basic
"20160227T100000/20160301T110000"
# Also works with a [`Calendar.DateTime.Interval`](Calendar.DateTime.Interval.html)
iex> %Calendar.DateTime.Interval{from: {{2016, 2, 27}, {10, 0, 0}} |> Calendar.DateTime.from_erl!("Etc/UTC"), to: {{2016, 3, 1}, {11, 0, 0}} |> Calendar.DateTime.from_erl!("Etc/UTC")} |> Calendar.NaiveDateTime.Interval.iso8601_basic
"20160227T100000/20160301T110000"