View Source Moar.DateTime (Moar v1.6.0)

DateTime-related functions.

Link to this section Summary

Functions

Like DateTime.add but takes a Moar.Duration.

Like DateTime.from_iso8601/1 but raises if the string cannot be parsed.

Like DateTime.to_iso8601/1 but rounds to the nearest second first.

Link to this section Functions

Link to this function

add(date_time, duration)

View Source
@spec add(DateTime.t(), Moar.Duration.t()) :: DateTime.t()

Like DateTime.add but takes a Moar.Duration.

See also Moar.NaiveDateTime.

iex> start = ~U[2022-01-01T00:00:00Z]
iex> Moar.DateTime.add(start, {3, :minute})
~U[2022-01-01T00:03:00Z]
Link to this function

from_iso8601!(date_time_string)

View Source
@spec from_iso8601!(date_time_string :: String.t()) :: DateTime.t()

Like DateTime.from_iso8601/1 but raises if the string cannot be parsed.

iex> Moar.DateTime.from_iso8601!("2022-01-01T00:00:00Z")
~U[2022-01-01T00:00:00Z]

iex> Moar.DateTime.from_iso8601!("2022-01-01T00:00:00+0800")
** (ArgumentError) Expected "2022-01-01T00:00:00+0800" to have a UTC offset of 0, but was: 28800

iex> Moar.DateTime.from_iso8601!("Next Thursday after lunch")
** (ArgumentError) Invalid ISO8601 format: "Next Thursday after lunch"
Link to this function

to_iso8601_rounded(date)

View Source
@spec to_iso8601_rounded(date_time :: DateTime.t()) :: String.t()

Like DateTime.to_iso8601/1 but rounds to the nearest second first.

iex> Moar.DateTime.to_iso8601_rounded(~U[2022-01-01T01:02:03.456789Z])
"2022-01-01T01:02:03Z"