Releases: uutils/parse_datetime
Release list
v0.15.0
parse_datetime v0.15.0 rolls up a round of dependency updates (jiff, winnow, codspeed, anyhow, defmt) and a new security-audit workflow, alongside GNU-date compatibility fixes: bare "ut"/"UT" now parse as UTC, HH:MM am/pm times work in combined date-time strings, negative unix timestamps use correct floor semantics, and fixed offsets are applied before relative adjustments
parse_datetime v0.15.0
What's Changed
Fixes
- fix(offset): accept "ut" / "UT" as a bare UTC timezone abbreviation by @0xSoftBoi in #287
- fix: support HH:MM am/pm time formats in combined date-time parsing by @0xSoftBoi in #284
- fix: add unix_epoch_second() with floor semantics for negative timestamps by @0xSoftBoi in #285
- builder: apply fixed offset before relative adjustments by @sylvestre in #299
CI / Infrastructure
- actions: add security audit workflow by @xtqqczze in #289
- chore(deps): update codecov/codecov-action action to v7 by @renovate[bot] in #301
- chore(deps): update actions/checkout action to v7 by @renovate[bot] in #302
Dependency updates
- chore(deps): update rust crate codspeed-criterion-compat to v4.5.0 by @renovate[bot] in #290
- chore(deps): update rust crate winnow to v1.0.2 by @renovate[bot] in #291
- chore(deps): update rust crate jiff to v0.2.24 by @renovate[bot] in #292
- chore(deps): update rust crate winnow to v1.0.3 by @renovate[bot] in #294
- chore(deps): update rust crate codspeed-criterion-compat to v4.6.0 by @renovate[bot] in #293
- chore(deps): update rust crate codspeed-criterion-compat to v4.7.0 by @renovate[bot] in #295
- chore(deps): update rust crate jiff to v0.2.25 by @renovate[bot] in #296
- chore(deps): update rust crate jiff to v0.2.27 by @renovate[bot] in #297
- chore(deps): update rust crate jiff to v0.2.28 by @renovate[bot] in #298
- chore(deps): update rust crate libfuzzer-sys to v0.4.13 by @renovate[bot] in #300
- chore(deps): update rust crate jiff to v0.2.29 by @renovate[bot] in #303
- chore(deps): update rust crate codspeed-criterion-compat to v5 by @renovate[bot] in #305
- chore(deps): update rust crate codspeed-criterion-compat to v5.0.1 by @renovate[bot] in #306
- chore(deps): update rust crate jiff to v0.2.31 by @renovate[bot] in #307
- chore(deps): update rust crates by @xtqqczze in #288
- Bump
anyhowfrom1.0.102to1.0.103by @cakebaker in #309 - Bump
defmtfrom1.1.0to1.1.1by @cakebaker in #310
New Contributors
- @xtqqczze made their first contribution in #289
- @0xSoftBoi made their first contribution in #287
Full Changelog: 0.15.0...v0.15.0
v0.14.0
What's Changed
- chore(deps): update rust crate winnow to v0.7.14 by @renovate[bot] in #249
- chore(deps): update rust crate jiff to v0.2.17 by @renovate[bot] in #250
- chore(deps): update rust crate jiff to v0.2.18 by @renovate[bot] in #251
- chore(deps): update rust crate jiff to v0.2.19 by @renovate[bot] in #256
- chore(deps): update rust crate libfuzzer-sys to v0.4.12 by @renovate[bot] in #257
- chore(deps): update rust crate jiff to v0.2.20 by @renovate[bot] in #258
- fix: TZ prefix should override base date timezone by @ChrisDryden in #255
- parse_datetime fix relative month dates result in wrong dates by @cerdelen in #253
- Add Coveralls integration for PR coverage reports by @sylvestre in #260
- date: add tests by @sylvestre in #259
- prepare release 0.14.0 by @sylvestre in #262
New Contributors
- @ChrisDryden made their first contribution in #255
- @cerdelen made their first contribution in #253
Full Changelog: v0.13.3...v0.14.0
v0.13.3
This is a minor bugfix release. It fixes parsing of decimal offsets with spaces: now + 25.0 seconds is now recognized (previously only now + 25 seconds and now+25.0 seconds were accepted).
Thanks to @3v1n0 for the fix!
What's Changed
Dependencies
- chore: update dependencies by @cakebaker in #247
New Contributors
Full Changelog: v0.13.2...v0.13.3
v0.13.2
This is a minor release that adds support for dates using the formats Nov-14-2024 and November-14-2024. They complement the already supported formats Nov 14 2024 and November 14 2024.
What's Changed
- feat: support formats
Nov-14-2024andNovember-14-2024by @cakebaker in #241
Dependencies
- chore: update dependencies by @cakebaker in #242
- chore(deps): update rust crate jiff to v0.2.16 by @renovate[bot] in #243
Full Changelog: v0.13.1...v0.13.2
v0.13.1
This is a small bug fix release: a string like "1234.123456789 seconds ago" caused an invalid date error (see uutils/coreutils#8754). In addition, the unused regex dependency has been removed.
Thanks to @yuankunzhang and @stillbeingnick for their PRs!
What's Changed
- chore: remove regex crate as dependency by @yuankunzhang in #236
- docs: add comments for the build function by @yuankunzhang in #237
- Changing ErrMode::Cut to ErrMode::Backtrack to allow alt parser flow (Fix for uutils/coreutils issue 8754) by @stillbeingnick in #238
New Contributors
- @stillbeingnick made their first contribution in #238
Full Changelog: v0.13.0...v0.13.1
v0.13.0
This is a small release to add a single feature: support for TZ="timezone" at the beginning of an input string.
Thanks to @yuankunzhang for implementing it.
What's Changed
- refactor: rename the timezone module to offset by @yuankunzhang in #231
- add support for
TZ="timezone"date spec by @yuankunzhang in #232
Dependencies
Full Changelog: v0.12.0...v0.13.0
v0.12.0
Breaking change: we have migrated from chrono to jiff. Our parse functions now return a jiff::Zoned struct upon success. Additionally, parse_datetime_at_date now requires a jiff::Zoned struct as an argument.
A big thank you to @yuankunzhang for all their work for this release!
What's Changed
- fix: remove unsupported named time zones by @yuankunzhang in #198
- feat: implement pure number parsing by @yuankunzhang in #199
- code and docs minor improvements by @yuankunzhang in #201
- refactor: improve timestamp handling and validation in builder by @yuankunzhang in #202
- refactor: extract timezone functionality from time module to timezone module by @yuankunzhang in #203
- refactor: replace floating-point seconds with precise integer representation by @yuankunzhang in #205
- (jiff series #1) refactor: add jiff and optimize date type sizes by @yuankunzhang in #208
- (jiff series #2) refactor: optimize time type sizes and add conversion from
Timetojiff::civil::Timeby @yuankunzhang in #209 - (jiff series #3) refactor: use
(i64, u32)for fractional seconds in relative time parsing by @yuankunzhang in #210 - (jiff series #4) refactor: optimize offset type sizes and add conversion from
Offsettojifff::tz::Offsetby @yuankunzhang in #211 - (jiff series #5) refactor: add conversion from
Daytojiff::civil::Weekdayby @yuankunzhang in #212 - (jiff series #6) refactor: replace chrono with jiff by @yuankunzhang in #213
- refactor: improve api encapsulation by @yuankunzhang in #215
- fix: use
checked_mul()to avoid overflow panic by @yuankunzhang in #217 - refactor: improve timestamp handling and test organization by @yuankunzhang in #218
- fix: use
checked_mul()to avoid overflow with "week" by @cakebaker in #219 - refactor: rename var to fix typo by @cakebaker in #216
- refactor: rename a function name and a var name by @cakebaker in #214
- refactor: misc minor refactors by @yuankunzhang in #221
- refactor: improve timezone offset parsing and validation by @yuankunzhang in #222
- fix: support timezone offsets that exceed 24-hour range by @yuankunzhang in #223
- refactor: replace Option-based error handling with Result-based error handling by @yuankunzhang in #225
- refactor: replace imperative parsing loop with functional combinators by @yuankunzhang in #230
Dependencies
- chore(deps): bump slab from 0.4.10 to 0.4.11 by @dependabot[bot] in #206
- fix(deps): update rust crate winnow to v0.7.13 by @renovate[bot] in #220
- fix(deps): update rust crate regex to v1.11.2 by @renovate[bot] in #224
- chore: update dependencies by @yuankunzhang in #229
New Contributors
- @dependabot[bot] made their first contribution in #206
Full Changelog: v0.11.0...v0.12.0
v0.11.0
A big thank you to @yuankunzhang for all their work for this release!
What's Changed
- use proper error mode in items::parse() by @yuankunzhang in #143
- use a custom float parser by @yuankunzhang in #148
- fix: check whether the parsed time contains timezone by @yuankunzhang in #150
- fix: use custom dec_uint in ordinal parsing by @yuankunzhang in #155
- Simplify items/mod.rs by moving the fundamental combinators to their own module by @yuankunzhang in #157
- fix relative date time handling by @yuankunzhang in #152
- fix: weekday may be followed by an optional comma by @yuankunzhang in #159
- Integration tests for date parsing by @Maximkaaa in #161
- tests: add license header to integration tests by @cakebaker in #164
- tests: fix typos by @cakebaker in #163
- test: Integration tests for time parsing by @Maximkaaa in #167
- clippy: fix warning from
uninlined_format_argsby @cakebaker in #170 - fix: check overflows during date time composition by @yuankunzhang in #171
- feat: support nanoseconds by @yuankunzhang in #168
- fix: hour must be greater than 0 when meridiem is specified by @yuankunzhang in #169
- refactor: put the epoch and timezone module into separate files by @yuankunzhang in #172
- refactor: introduce a builder and simplify the date time composition by @yuankunzhang in #173
- fix: timestamp cannot be combined with other items by @yuankunzhang in #174
- chore: re-organize items/mod.rs by @yuankunzhang in #178
- fix: time offset can only appear after time or timezone by @yuankunzhang in #180
- feat: support leading zeros in
timezone_colonless()by @yuankunzhang in #181 - feat: add a
ctx_errutil function by @yuankunzhang in #182 - Improve the
ios1()andiso2()date parsers by @yuankunzhang in #183 - Improve the
us()date parser by @yuankunzhang in #184 - feat: improve the literal date parsers by @yuankunzhang in #186
- feat: add a year module by @yuankunzhang in #187
- Update comments by @yuankunzhang in #188
- fix: support float timestamp values by @yuankunzhang in #189
- fix base datetime handling in the builder by @yuankunzhang in #190
- docs: update comments by @yuankunzhang in #191
- Update readme by @yuankunzhang in #192
- tests: set timezone to
UTC0in integration tests by @cakebaker in #162 - chore: remove unnecessary
Optionas return value by @cakebaker in #179
Dependencies
- fix(deps): update rust crate libfuzzer-sys to v0.4.10 by @renovate[bot] in #175
- fix(deps): update rust crate winnow to v0.7.12 by @renovate[bot] in #176
- chore(deps): update rust crate rstest to v0.26.1 by @renovate[bot] in #194
New Contributors
- @Maximkaaa made their first contribution in #161
Full Changelog: v0.10.0...v0.11.0
v0.10.0
What's Changed
- Allow uppercase for words like "today", "next", etc. by @dan-hipschman in #134
- Replace the regex parser with winnow-based parse by @yuankunzhang in #137
- Code cleanup by @yuankunzhang in #138
- Specify MSRV 1.71.1 by @yanganto in #142
- Upgrade winnow to 0.7.10 by @yuankunzhang in #141
- Fix/improve tests by @drinkcat in #146
- fallible offset conversion by @yuankunzhang in #145
Dependencies
New Contributors
- @yuankunzhang made their first contribution in #137
- @yanganto made their first contribution in #142
- @drinkcat made their first contribution in #146
Full Changelog: v0.9.0...v0.10.0
v0.9.0
What's Changed
- README.md: fix incorrect sentence by @cakebaker in #120
- Allow spaces between +/- and number by @dan-hipschman in #129
- Rename
TWELVEHOURtoTWELVE_HOURby @cakebaker in #121 - clippy: fix some warnings from clippy::pedantic by @cakebaker in #130
- Parse relative weekdays like "next monday" by @dan-hipschman in #128
Dependencies
New Contributors
- @dan-hipschman made their first contribution in #129
Full Changelog: v0.8.0...v0.9.0