#date #date-time #parse-date #human #parser #string #express

human-date-parser

Parses strings that express dates in a human way into ones usable by code

3 releases

0.1.2 Apr 4, 2024
0.1.1 Jan 26, 2023
0.1.0 Jan 21, 2023

#61 in Date and time

Download history 2047/week @ 2024-01-22 2029/week @ 2024-01-29 2079/week @ 2024-02-05 1982/week @ 2024-02-12 2139/week @ 2024-02-19 2167/week @ 2024-02-26 2673/week @ 2024-03-04 1862/week @ 2024-03-11 1957/week @ 2024-03-18 1961/week @ 2024-03-25 3003/week @ 2024-04-01 3100/week @ 2024-04-08 1936/week @ 2024-04-15 1924/week @ 2024-04-22 2495/week @ 2024-04-29 1902/week @ 2024-05-06

8,475 downloads per month
Used in 12 crates (3 directly)

MIT license

24KB
585 lines

Human Date Parser

Parses strings that express dates in a human way into ones usable by code.

Usage

Using it is as simple as calling from_human_time with a string slice. Like this:

use human_date_parser::from_human_time;

fn main() {
    let date = from_human_time("Last Friday at 19:45").unwrap();
    println!("{date}");
}

You can also use the example to try out a few dates and see what it can and can't parse. Simply run cargo run --example stdin.

Formats

Currently the following kinds of formats are supported:

  • Today 18:30
  • 2022-11-07 13:25:30
  • 15:20 Friday
  • This Friday 17:00
  • 13:25, Next Tuesday
  • Last Friday at 19:45
  • In 3 days
  • In 2 hours
  • 10 hours and 5 minutes ago
  • 1 years ago
  • A year ago
  • A month ago
  • A week ago
  • A day ago
  • An hour ago
  • A minute ago
  • A second ago
  • Now
  • Yesterday
  • Tomorrow
  • Overmorrow

Issues

If you find issues or opportunities for improvement do let me know by creating a issues on this projects GitHub page.

Dependencies

~4MB
~77K SLoC