Releases: bitwalker/timex
Releases · bitwalker/timex
Version 0.19.2
Version 0.19.1
Changes
- BREAKING - Refactor of Time formatting. TimeFormat now delegates to a Formatter module much like DateFormat does, and there are now two implementations, ISO-8601 duration formatting via the Default formatter, and humanized formatting via the Humanized formatter. The Time formatter is a behaviour just like the DateTime formatter, so it can be extended the same way.
Version 0.17.0
- Rewrote parsers/formatters from the ground up. Improvements here include numerous parser/formatting bugs being discovered and fixed, a much simpler API for implementing custom parsers/formatters, and improved testing.
- Improved documentation, added many more tests
- Performance fixes where possible
Version 0.16.0
- A few small fixes for bugs reported on the tracker
- Internal refactoring to organize related modules more intuitively. NOTE: This affects you if you have custom formatters/tokenizers/parsers, or do not use
use Timex
. - Change the behaviour of
{ISO}
to handle all valid ISO-8601 combined date/time string formats - Change the behaviour of
{ISOz}
to handle all valid ISO-8601 combined date/time strings which contain no offset (are suffixed with 'Z').
Version 0.14.0
Changes
- Add
lau/tzdata
package as dependency for loading Olson timezone information - Refactor
Timezone
module to useTzdata
for loading the tz database - Refactor
TimezoneInfo
struct to reflect that the information is for a single period, rather than all periods - Remove
Timezone.Dst
module, as it is no longer needed - Refactor timezone related APIs to take a DateTime or Erlang datetime tuple in most places where a timezone is being loaded, as it is necessary to know which point in time to fetch zone info for.
- Update tests.
This is a significant update! Please post issues as you encounter them and I will address ASAP. This release will likely be the last prior to a 1.0-RC.
Version 0.13.0
Changes
PLEASE READ
I've made some changes around timezone conversion to make the API more explicit, and open up some options previously unavailable for working with DateTime objects. Make note of the changes below and how they may affect you, if at all.
- Timezone.convert now does the time shift AND sets the timezone. Previously it only shifted the time.
Date.set(date, timezone: tz)
no longer does implicit timezone conversion. You must use Timezone.convert if you want to shift a date to another timezone.- Added Date.compare/3, which takes a granularity option for determining equality during a comparison. The options available are :years, :months, :weeks, :days, :hours, :mins, :secs, and :timestamp - in other words, the same options that Date.diff takes. This means that if you have two dates only off by a few hours,
Date.compare(a, b, :days)
will return 0, or equal.
Please let me know if you run into any issues with this release. Thanks!
Version 0.12.8
Changes
- Fix for Date.local. Updated timezone but not the date, even though Timezone.convert was returning the shifted date, it was not being used. Thanks to @atabary for the fix!
Version 0.12.0
Changes
- Date parsing and formatting has been completely rewritten from the ground up. It now offers a pluggable architecture for both parsing and formatting, exposed via the
Timex.Parsers.DateFormat.Parser
behaviour, andTimex.DateFormat.Formatters.Formatter
behaviour. Potentially Breaking Change: I've kept the sameDateFormat.*
API, but because the parsers/formatters were rewritten, there may be bugs. The current test suite is passing, so if you encounter bugs, please document the exact parameters so I can fix it and make sure we have test coverage. Timezone.get(0)
now returnsUTC
notGMT
.- Support for Elixir 0.15.1
Version 0.10.2
Changes
- Major refactor of the local timezone lookup component
- Fixed a number of bugs, old and new, which were cleaned up.
- Local timezone lookups should now be much faster.