Date, Time and DateTime Localization

As of version 0.2.0, formatting of relative dates and date times is supported with the Cldr.Date.Relative module. The public API is Cldr.Date.Relative.to_string/2.

Note that date and datetime formatting is not currently support - only relative date and datetime formatting.

Public API

The primary API for formatting relative dates and datetimes is Cldr.Date.Relative.to_string/2. Some examples:

      iex> Cldr.Date.Relative.to_string(-1)
      "1 second ago"

      iex> Cldr.Date.Relative.to_string(1)
      "in 1 second"

      iex> Cldr.Date.Relative.to_string(1, unit: :day)
      "tomorrow"

      iex> Cldr.Date.Relative.to_string(1, unit: :day, locale: "fr")
      "demain"

      iex> Cldr.Date.Relative.to_string(1, unit: :day, format: :narrow)
      "tomorrow"

      iex> Cldr.Date.Relative.to_string(1234, unit: :year)
      "in 1,234 years"

      iex> Cldr.Date.Relative.to_string(1234, unit: :year, locale: "fr")
      "dans 1 234 ans"

      iex> Cldr.Date.Relative.to_string(31)
      "in 31 seconds"

      iex> Cldr.Date.Relative.to_string(~D[2017-04-29], relative_to: ~D[2017-04-26])
      "in 3 days"

      iex> Cldr.Date.Relative.to_string(310, format: :short, locale: "fr")
      "dans 5 min"

      iex> Cldr.Date.Relative.to_string(310, format: :narrow, locale: "fr")
      "+5 min"

      iex> Cldr.Date.Relative.to_string 2, unit: :wed, format: :short
      "in 2 Wed."

      iex> Cldr.Date.Relative.to_string 1, unit: :wed, format: :short
      "next Wed."

      iex> Cldr.Date.Relative.to_string -1, unit: :wed, format: :short
      "last Wed."

      iex> Cldr.Date.Relative.to_string -1, unit: :wed
      "last Wednesday"

      iex> Cldr.Date.Relative.to_string -1, unit: :quarter
      "last quarter"

      iex> Cldr.Date.Relative.to_string -1, unit: :mon, locale: "fr"
      "lundi dernier"

      iex> Cldr.Date.Relative.to_string(~D[2017-04-29], unit: :ziggeraut)
      {:error,
       "Unknown time unit :ziggeraut.  Valid time units are [:day, :hour, :minute, :month, :second, :week, :year, :mon, :tue, :wed, :thu, :fri, :sat, :sun, :quarter]"}