#time #human #human-friendly #parser #duration

humantime

A parser and formatter for std::time::{Duration, SystemTime}

15 releases (8 stable)

2.1.0 Jan 13, 2021
2.0.1 Jun 11, 2020
2.0.0 Jan 19, 2020
1.3.0 Sep 9, 2019
0.1.3 May 23, 2016

#7 in Date and time

Download history 1063198/week @ 2023-11-14 807515/week @ 2023-11-21 951296/week @ 2023-11-28 942800/week @ 2023-12-05 959660/week @ 2023-12-12 724114/week @ 2023-12-19 482745/week @ 2023-12-26 883945/week @ 2024-01-02 958022/week @ 2024-01-09 1013935/week @ 2024-01-16 1014608/week @ 2024-01-23 1046035/week @ 2024-01-30 1048929/week @ 2024-02-06 1036978/week @ 2024-02-13 1107544/week @ 2024-02-20 952478/week @ 2024-02-27

4,324,896 downloads per month
Used in 10,236 crates (444 directly)

MIT/Apache

46KB
917 lines

Human Time

Status: stable

Documentation | Github | Crate

Features:

  • Parses durations in free form like 15days 2min 2s
  • Formats durations in similar form 2years 2min 12us
  • Parses and formats timestamp in rfc3339 format: 2018-01-01T12:53:00Z
  • Parses timestamps in a weaker format: 2018-01-01 12:53:00

Timestamp parsing/formatting is super-fast because format is basically fixed.

Here are some micro-benchmarks:

test result: ok. 0 passed; 0 failed; 26 ignored; 0 measured; 0 filtered out

     Running target/release/deps/datetime_format-8facb4ac832d9770

running 2 tests
test rfc3339_chrono            ... bench:         737 ns/iter (+/- 37)
test rfc3339_humantime_seconds ... bench:          73 ns/iter (+/- 2)

test result: ok. 0 passed; 0 failed; 0 ignored; 2 measured; 0 filtered out

     Running target/release/deps/datetime_parse-342628f877d7867c

running 6 tests
test datetime_utc_parse_millis  ... bench:         228 ns/iter (+/- 11)
test datetime_utc_parse_nanos   ... bench:         236 ns/iter (+/- 10)
test datetime_utc_parse_seconds ... bench:         204 ns/iter (+/- 18)
test rfc3339_humantime_millis   ... bench:          28 ns/iter (+/- 1)
test rfc3339_humantime_nanos    ... bench:          36 ns/iter (+/- 2)
test rfc3339_humantime_seconds  ... bench:          24 ns/iter (+/- 1)

test result: ok. 0 passed; 0 failed; 0 ignored; 6 measured; 0 filtered out

See humantime-serde for serde integration (previous crate serde-humantime looks unmaintained).

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

No runtime deps