Provides localized formatting of Date structs and date-like maps.
Supports both full dates (%{year: _, month: _, day: _}) and partial
dates (any map with one or more of :year, :month, :day). For
partial dates, the format is derived from the available fields.
Formats are defined in CLDR and described in TR35.
Summary
Functions
Formats a date 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 date according to a CLDR format pattern.
Arguments
dateis aDate.t/0or any map with one or more of:year,:month,:daykeys.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 dates. For partial dates 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 date cannot be formatted.
Examples
iex> Localize.Date.to_string(~D[2017-07-10], locale: :en)
{:ok, "Jul 10, 2017"}
iex> Localize.Date.to_string(~D[2017-07-10], format: :full, locale: :en)
{:ok, "Monday, July 10, 2017"}
iex> Localize.Date.to_string(~D[2017-07-10], format: :short, locale: :en)
{:ok, "7/10/17"}
iex> Localize.Date.to_string(~D[2017-07-10], format: :short, locale: :fr)
{:ok, "10/07/2017"}
iex> Localize.Date.to_string(%{year: 2024, month: 6}, format: :yMMM, locale: :fr)
{:ok, "juin 2024"}
Same as to_string/2 but raises on error.
Examples
iex> Localize.Date.to_string!(~D[2017-07-10], locale: :en)
"Jul 10, 2017"
iex> Localize.Date.to_string!(%{year: 2024, month: 6}, format: :yMMM, locale: :fr)
"juin 2024"