parse_datetime

Crates.io License CodeCov

A Rust crate for parsing human-readable relative time strings and human-readable datetime strings and converting them to a DateTime.

Features

Usage

Add this to your Cargo.toml:

toml [dependencies] parse_datetime = "0.4.0"

Then, import the crate and use the parse_datetime_at_date function:

```rs use chrono::{Duration, Local}; use parsedatetime::parsedatetimeatdate;

let now = Local::now(); let after = parsedatetimeat_date(now, "+3 days");

asserteq!( (now + Duration::days(3)).naiveutc(), after.unwrap().naive_utc() ); ```

For DateTime parsing, import the parse_datetime module:

```rs use parsedatetime::parsedatetime::from_str; use chrono::{Local, TimeZone};

let dt = fromstr("2021-02-14 06:37:47"); asserteq!(dt.unwrap(), Local.withymdand_hms(2021, 2, 14, 6, 37, 47).unwrap()); ```

Supported Formats

The parse_datetime and parse_datetime_at_date functions support absolute datetime and the following relative times:

num can be a positive or negative integer. unit can be one of the following: "fortnight", "week", "day", "hour", "minute", "min", "second", "sec" and their plural forms.

Return Values

parsedatetime and parsedatetimeatdate

The parse_datetime and parse_datetime_at_date function return:

Fuzzer

To run the fuzzer:

$ cd fuzz $ cargo install cargo-fuzz $ cargo +nightly fuzz run fuzz_parse_datetime

License

This project is licensed under the MIT License.

Note

At some point, this crate was called humantimetoduration. It has been renamed to cover more cases.