| Crates.io | fuzzydate |
| lib.rs | fuzzydate |
| version | 0.3.1 |
| created_at | 2022-02-17 06:10:10.564767+00 |
| updated_at | 2025-11-27 04:02:38.462084+00 |
| description | A flexible natural language date parsing library |
| homepage | |
| repository | https://github.com/DevinVS/fuzzydate |
| max_upload_size | |
| id | 533898 |
| size | 97,824 |
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.
Add to your Cargo.toml:
[dependencies]
fuzzydate = "0.3"
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(())
}