The theme of this release is no information is better than assumed information. So the breaking changes are simply to undo some defaults that we had set in pre-1.x. The biggest one was assuming a 00:00:00 time when no time was found, another was converting to UTC automatically. This no longer happens by default, but you can still have these behaviors through an option.
This release was dogfooded for a while, and we found some bugs in it during the RC phase, so if you’re using the library pre-1.x I recommend that you upgrade as soon as you can.
Here’s the changelog:
Breaking
- Change
parse_datetimeto no longer assume time. Previously, it would assume00:00:00if time could not be parsed. This is replaced with an opt-in optionassume_time. See next point. If you relied on this, to upgrade add the option; eg:DateTimeParser.parse_datetime(string, assume_time: true) - Change
parse_datetimeto no longer convert DateTime to UTC timezone. If you relied on this, to upgrade add the option; eg:DateTimeParser.parse_datetime(string, to_utc: true) - Change
parse_dateto no longer assume a date. Previously, it would assume the current date, and replace the found information from the string. This is replaced with an opt-in option ofassume_date. If you relied on this, to upgrade add the option; eg:DateTimeParser.parse_date(string, assume_date: true)
Bugs
- Fix a UTC conversion bug between Daylight/Standard time (#20). If you’re using an earlier version and converting to UTC, please upgrade to >= 1.0.0-rc2 immediately.
- Fix an epoch subsecond parsing bug (#16) (thanks @tmr08c)
- Updated for compatibility with Elixir 1.10.0
Features
- Add
parse/2that will respond with the best match. This function accepts all options introduced below. - Add
parse_datetime/2to accept options:assume_time: true | %Time{} | falsewith the default of false.
- Add
parse_date/2to accept options:assume_date: true | %Date{} | falsewith the default of false.
- Add support for parsing negative epoch times. (#24) (thanks @tmr08c)
- Add bang variants,
parse!/2,parse_datetime!/2,parse_time!/2, andparse_date!/2 - Added
parsers: []option to add or disable parsers. This is helpful if you are don’t want to consider Serial or Epoch timestamps


















