Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parse reference datetime and timedelta from the same string #110

Open
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

jfinkels
Copy link
Contributor

@jfinkels jfinkels commented Jan 31, 2025

Change the parse_datetime() function so that it parses both a
reference date and a time delta from one string. The new implementation
attempts to parse the datetime from the longest possible prefix of the
string. The remainder of the string is parsed as the time delta. This
allows us to parse more combinations of reference dates and time deltas
more easily.

Fixes #104

Allow the empty string when parsing the relative time in
`parse_relative_time_at_date()`. The empty string represents zero time
delta.
Protect against a situation where adding one month to the current day
would cause an overflow in the next month in some unit tests of
`parse_relative_time`. For example, adding one month to March 31
should overflow to May 1 because April only has 30 days. This is a
difference in the behavior we want for our library compared with the
behavior of `chrono`.
Change the `parse_datetime()` function so that it parses both a
reference date and a time delta from one string. The new implementation
attempts to parse the datetime from the longest possible prefix of the
string. The remainder of the string is parsed as the time delta. This
allows us to parse more combinations of reference dates and time deltas
more easily.

Fixes uutils#104
@jfinkels jfinkels force-pushed the parse-ref-date-and-delta branch from 805611a to 52e0546 Compare January 31, 2025 03:16
@jfinkels jfinkels changed the title [WIP] Parse reference datetime and timedelta from the same string Parse reference datetime and timedelta from the same string Jan 31, 2025
@jfinkels jfinkels marked this pull request as ready for review January 31, 2025 03:17
@cakebaker
Copy link
Collaborator

Great to see you also fixed the failing test_months and test_duration_parsing in parse_relative_time.rs :)

src/lib.rs Outdated Show resolved Hide resolved
src/lib.rs Outdated Show resolved Hide resolved
@jfinkels
Copy link
Contributor Author

jfinkels commented Feb 1, 2025

Sorry, I don't know how to interpret the "Basic CI / Run the fuzzers" job failure. Let me know if I should do anything about that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

parse_datetime fails to parse a string comprising both reference date and a time delta
2 participants