Skip to content

Cldr Dates Times version 2.0.0

Compare
Choose a tag to compare
@kipcole9 kipcole9 released this 09 Jun 01:39

This is the changelog for Cldr_Dates_Times v2.0 released on June 9th, 2019. For older changelogs please consult the release tag on GitHub

This release depends on ex_cldr_calendars which provides the underlying calendar calculations as well as providing a set of additional calendars.

Breaking Changes

  • ex_cldr_dates_times requires a minimum Elixir version of 1.8. It depends on Calendar capabilities built into this and later release.

  • ex_cldr_dates_times now depends upon ex_cldr version 2.0. As a result it is a requirement that at least one backend module be configured as described in the ex_cldr readme.

  • The public API is now based upon functions defined on a backend module. Therefore calls to functions such as Cldr.DateTime.to_string/3 should be replaced with calls to MyApp.Cldr.DateTime.to_string/3 (assuming your configured backend module is called MyApp.Cldr).

Enhancements

  • Correctly calculates week_of_year

  • Supports Calendar.ISO and any calendar defined with Cldr.Calendar (see ex_cldr_calendars)

Known limitations

  • Does not calculate week_of_month. If called will return 1 for all input values.

Migration

ex_cldr_dates_times uses the configuration set for the dependency ex_cldr. See the documentation for ex_cldr

Unlike ex_cldr_dates_times version 1, version 2 requires one or more backend modules to host the functions that manage CLDR data. An example to get started is:

  1. Create a backend module:
defmodule MyApp.Cldr do
  use Cldr,
    locales: ["en", "fr", "ja"],
    providers: [Cldr.Number, Cldr.Calendar, Cldr.DateTime]

end
  1. Update config.exs configuration to specify this backend as the system default:
config :ex_cldr,
  default_locale: "en",
  default_backend: MyApp.Cldr
  1. Replace calls to Date. Time and DateTime functions to_string/2 with calls to to_string/3 where the second parameter is a backend module.