MyApp.Cldr.Date.Interval.to_string-exclamation-mark

You're seeing just the function to_string-exclamation-mark, go back to MyApp.Cldr.Date.Interval module for more information.
Link to this function

to_string!(from, to, options)

View Source

Specs

to_string!(Calendar.date(), Calendar.date(), Keyword.t()) ::
  String.t() | no_return()

Returns a interval formed from two dates as a localised string.

Arguments

  • from is any map that conforms to the Calendar.date type.

  • to is any map that conforms to the Calendar.date type. to must occur on or after from.

  • options is a keyword list of options. The default is [].

Options

  • :format is one of :short, :medium or :long or a specific format type or a string representing of an interval format. The default is :medium.

  • :style supports dfferent formatting styles. The alternatives are :date, :month_and_day, :month and :year_and_month. The default is :date.

  • locale is any valid locale name returned by Cldr.known_locale_names/0 or a Cldr.LanguageTag struct. The default is Elixir.MyApp.Cldr.get_locale/0.

  • number_system: a number system into which the formatted date digits should be transliterated.

Returns

  • string or

  • raises an exception

Notes

  • For more information on interval format string see the Cldr.Interval.

  • The available predefined formats that can be applied are the keys of the map returned by Cldr.DateTime.Format.interval_formats("en", :gregorian) where "en" can be replaced by any configuration locale name and :gregorian is the underlying CLDR calendar type.

  • In the case where from and to are equal, a single date is formatted instead of an interval

Examples

iex> MyApp.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-12-31])
"Jan 1 – Dec 31, 2020"

iex> MyApp.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12])
"Jan 1 – 12, 2020"

iex> MyApp.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12]),
...> format: :long
"Wed, Jan 1 – Sun, Jan 12, 2020"

iex> MyApp.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-12-01]),
...> format: :long, style: :year_and_month
"January – December 2020"

iex> use CalendarInterval
iex> MyApp.Cldr.Date.Interval.to_string! ~I"2020-01/12"
"Jan 1 – Dec 31, 2020"

iex> MyApp.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12]),
...> format: :short
"1/1/2020 – 1/12/2020"

iex> MyApp.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12]),
...> format: :long, locale: "fr"
"mer. 1 – dim. 12 janv. 2020"