11 releases
| 0.3.1 | Nov 27, 2025 |
|---|---|
| 0.3.0 | Nov 26, 2025 |
| 0.2.3 | Mar 9, 2025 |
| 0.2.2 | Dec 27, 2023 |
| 0.1.5 | Feb 18, 2022 |
#47 in Date and time
1,410 downloads per month
Used in 8 crates
(4 directly)
85KB
2K
SLoC
fuzzydate
fuzzydate parses human-friendly date/time phrases (for example: "five days after this Friday", "tomorrow at noon", "3 weeks ago") and returns chrono datetimes. The current time (or a passed alternative), is used for any values not specified by the phrase and for any operations that are relative to an existing time, like 5 days ago. By default, fuzzydate uses the current time and system timezone.
Quick links
Install
Add to your Cargo.toml:
[dependencies]
fuzzydate = "0.3"
Examples
For full grammar reference, see the documentation.
use fuzzydate::parse;
fn main() -> Result<(), fuzzydate::Error> {
let dt = parse("five days after this friday")?;
println!("{:?}", dt);
Ok(())
}
Additional functions are available to parse datetimes with an alternative current time and parse in a timezone other than the system timezone:
use fuzzydate::aware_parse;
use chrono::offset::Utc;
use chrono::prelude::*;
fn main() -> Result<(), fuzzydate::Error> {
let dt = aware_parse("tomorrow at noon", Utc::now(), Utc)?;
println!("{}", dt);
Ok(())
}
Dependencies
~1–2MB
~34K SLoC