Provides localized formatting of Time structs and time-like maps.
Supports both full times (%{hour: _, minute: _, second: _}) and
partial times (any map with one or more of :hour, :minute,
:second). For partial times, the format is derived from the
available fields.
Formats are defined in CLDR and described in TR35.
Summary
Functions
Formats a time according to a CLDR format pattern.
Same as to_string/2 but raises on error.
Functions
@spec to_string(map(), Keyword.t()) :: {:ok, String.t()} | {:error, Exception.t()}
Formats a time according to a CLDR format pattern.
Arguments
timeis aTime.t/0or any map with one or more of:hour,:minute,:secondkeys.optionsis a keyword list of options.
Options
:formatis a standard format name (:short,:medium,:long,:full), a format skeleton atom, or a format pattern string. The default is:mediumfor full times. For partial times the format is derived from the available fields.:localeis a locale identifier. The default is:en.:preferis:unicodeor:asciifor variant selection. The default is:unicode.
Returns
{:ok, formatted_string}on success.{:error, exception}if the time cannot be formatted.
Examples
iex> Localize.Time.to_string(~T[14:30:00], locale: :en, prefer: :ascii)
{:ok, "2:30:00 PM"}
iex> Localize.Time.to_string(~T[14:30:00], format: :short, locale: :en, prefer: :ascii)
{:ok, "2:30 PM"}
iex> Localize.Time.to_string(%{hour: 14, minute: 30}, format: :hm, locale: :en, prefer: :ascii)
{:ok, "2:30 PM"}
Same as to_string/2 but raises on error.
Examples
iex> Localize.Time.to_string!(~T[14:30:00], locale: :en, prefer: :ascii)
"2:30:00 PM"