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

Changelog History
Page 1

  • v3.7.8 Changes

    ➕ Added/Changed

    • ➕ Add Thai translations
    • ➕ Add Estonian translation
    • ➕ Added TimezoneInfo.format_offset/1

    🛠 Fixed

    • 🛠 Fix incorrect Timex.weekday/2 typespecs
    • ➕ Added timezone field to set_options type
    • Corrected type definition for Types.week_of_month to include possiblity of 6th week (see #703)
    • ➕ Added specs to parse function to account for AmbiguousDateTime return type

  • 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