All Versions
38
Latest Version
Avg Release Cycle
55 days
Latest Release
-

Changelog History
Page 1

  • v3.7.6 Changes

    ๐Ÿ”„ Changed

    • ๐Ÿ“š The documentation on weekday formatting via %w and %u strftime directives and WDmon and WDsun 0๏ธโƒฃ default directives did not match, and worse, the behaviour had regressed as well and did not match the ๐Ÿ“„ docs for either. The behaviour now matches between the two formatters, as does the documentation, and aligns with the C strftime specification (i.e. Monday is 1..7, Sunday is 0..6)

    ๐Ÿ›  Fixed

    • ๐Ÿ“„ Clarify docs on comparison granularity for days/weeks
    • ๐Ÿ›  Fix incorrect weekday formatting (see #668)
    • ๐Ÿ‘€ Handled edge case where no locally-defined timezone is present (see #670)
    • ๐Ÿ‘€ Invalid validation of ambiguous date/times during parsing (see #674)

  • v3.7.5 Changes

    โž• Added/Changed

    • โž• Added Timex.Timezone.get/3 to allow requesting timezones using utc or wall clock as desired

    ๐Ÿ›  Fixed

    • โž• Addressed issues #652, #658, #659, #656, #654, #653
  • v3.7.4 Changes

    ๐Ÿ›  Fixed

    • โž• Addressed issues #647, #648, #649, #650
  • v3.7.3 Changes

    NOTE: The config of the Timex default locale is changed to:

    config :your_app, Timex.Gettext, default_locale: "en"
    

    ๐Ÿ‘€ This follows the standard set by Gettext, see: the Gettext docs

    Now when the Gettext locale is being changed on runtime with:

    Gettext.put_locale("nl")
    

    The Gettext backend for Timex will follow suit. If for some reason you want Timex, and just Timex, to change its locale to something else you should target the Timex.Gettext backend with:

    Timex.Gettext.put_locale("de")
    

    Potentially Breaking

    • ๐Ÿ›  Fixed handling of Etc/GMT vs GMT timezones. The former must be POSIX compatible, which inverts the meaning of the sign, whereas the latter have no such restriction and are equivalent to UTC(+/-)HH:MM, while this is fixing incorrect behavior, it could potentially break users relying on the incorrect behavior.

    ๐Ÿ›  Fixed

    • ๐Ÿ“œ #494, incorrect handling of parsing week numbers
    • ๐Ÿ‘Œ Improve parsing of timezones
    • Incorrect stringification of error values returned in some circumstances
    • ๐Ÿ‘€ Let Timex follow the locale set by the global Gettext. See #501

    โž• Added/Changed

    • โœ‚ Removed Timex.Timezone.diff, as it is no longer used in Timex
    • Added support for obtaining the Julian day of year via Calendar.Julian.date_for_day_of_year/3

    ๐Ÿ›  Fixed

  • v3.7.1 Changes

    ๐Ÿ›  Fixed

    • local/0 and local/1 were incorrectly returning TimezoneInfo structs due to a bad match
  • v3.7.0 Changes

    Potentially Breaking

    • Elixir 1.8+ is now required
    • Tzdata 1.0+ is now required
    • ๐Ÿ›  If you were previously relying on ? suffixed functions to return {:error, reason} if given invalid date/time inputs (other than is_valid?), these functions now always return booleans and raise if an error with the input is encountered

    โž• Added/Changed

    • โ™ป๏ธ Refactored much of the library to delegate to the Calendar API where appropriate, we now make more of an effort to avoid duplication of the standard library functionality
    • Functions with the ? suffix now correctly raise on invalid inputs, and always return booleans. This was implicitly broken before, we need to follow convention here.
    • ๐Ÿ“œ Local timezone handling no longer requires parsing the zoneinfo files, instead we attempt to observe the timezone name that is active and feed that into the timezone database directly. We were just using the abbreviations before, but that wasn't correct behavior at all. In the ๐Ÿ‘ future we may want to support the system timezone database as a proper implementation of Calendar.TimeZoneDatabase, but for now we've just โœ‚ removed the unnecessary parsing work that was going on here.
    • Timex.today/1 which returns today's date in the provided timezone

    ๐Ÿ›  Fixed

    • Handling of timezones across DST. More generally we now handle gaps/ambiguity much more consistently
    • โ™ป๏ธ ZoneInfo parser was refactored, now properly supports version 2/3 files, addresses some small bugs in previous code
    • ๐Ÿšš Some incorrect/redundant typespecs were removed/fixed
    • ๐Ÿ‘ We now support alternative timezone databases for API operations that do not need to interact with the Timex.Timezone module directly. That module is still tied to tzdata for now, but in the future may be ๐Ÿšš modified to remove the direct dependency.
  • v3.6.4 Changes

    Potentially Breaking

    • Timex.set/2 now sets microseconds when setting :time from a %Time{} struct
    • 0๏ธโƒฃ Timex.Duration.to_string/1 now returns PT0S instead of P for zero-length durations with the default formatter

    โž• Added

    • Timex.set/2 now also accepts setting the :date from a %Date{} and :time from a %Time{} struct for NaiveDateTime

    ๐Ÿ›  Fixes

    • ๐Ÿš€ Loosen tzdata dependency to allow 1.x releases
  • v3.6.3 Changes

    โž• Added

    • Switched to GitHub Actions for CI
    • ๐ŸŒ Finnish translations
    • Enumerable implementation for Timex.Interval

    ๐Ÿ›  Fixed

    • ๐ŸŒ Czech translation fixes
    • #616
    • #615
  • v3.6.2 Changes

    โž• Added

    • โšก๏ธ Updated tzdata to 1.0.1
    • ๐ŸŒ Vietnamese/Czech/Hebrew/Bosnian translations
    • Formatter settings, and ran the formatter on the codebase

    ๐Ÿ›  Fixed

    • ๐ŸŒ Romanian translation fixes
    • ๐Ÿ“š Various documentation/typespec fixes
    • ๐Ÿ“œ Parser for ISOweek
    • #559
    • #577
  • v3.6.1 Changes

    June 27, 2019

    Potentially Breaking

    • Require Elixir v1.6+

    โž• Added

    • โœ… Setup property based test framework and add sample tests (#480)
    • ๐ŸŒ Turkish translation (#534)
    • โž• Add details to parsing documentation (#540)
    • ๐Ÿ‘Œ Support time units in singular (#509)
    • ๐Ÿ“š #538 documentation of default formatting directives
    • ๐Ÿ‘Œ Support for tzdata 1.0.0 (#536)

    ๐Ÿ›  Fixed

    • โž• Address handling of ambiguity in timezone conversions by using UTC clock time, where possible. See #488
    • #491 gracefully handle errors resolving a timezone using wall clock time
    • #514 gracefully handle converting date to datetime on tz boundary
    • #531 address some issues with shifting over timezone boundaries
    • #507 unnecessary tz conversion during logical shifts results in erroneous results
    • #532 shift priority incorrectly inverted
    • #537 precision not preserved in some situations
    • ๐Ÿ—„ Elixir 1.8 deprecations
    • Timex.diff/2 spec
    • Timex.Timezone.convert/2 when using custom time zones
    • ๐ŸŒ Letter encoding on PT translation
    • ๐ŸŒ Swedish translation id for March