1136e7745Sopenharmony_ciHuman Time
2136e7745Sopenharmony_ci==========
3136e7745Sopenharmony_ci
4136e7745Sopenharmony_ci**Status: stable**
5136e7745Sopenharmony_ci
6136e7745Sopenharmony_ci[Documentation](https://docs.rs/humantime) |
7136e7745Sopenharmony_ci[Github](https://github.com/tailhook/humantime) |
8136e7745Sopenharmony_ci[Crate](https://crates.io/crates/humantime)
9136e7745Sopenharmony_ci
10136e7745Sopenharmony_ci
11136e7745Sopenharmony_ciFeatures:
12136e7745Sopenharmony_ci
13136e7745Sopenharmony_ci* Parses durations in free form like `15days 2min 2s`
14136e7745Sopenharmony_ci* Formats durations in similar form `2years 2min 12us`
15136e7745Sopenharmony_ci* Parses and formats timestamp in `rfc3339` format: `2018-01-01T12:53:00Z`
16136e7745Sopenharmony_ci* Parses timestamps in a weaker format: `2018-01-01 12:53:00`
17136e7745Sopenharmony_ci
18136e7745Sopenharmony_ciTimestamp parsing/formatting is super-fast because format is basically
19136e7745Sopenharmony_cifixed.
20136e7745Sopenharmony_ci
21136e7745Sopenharmony_ciHere are some micro-benchmarks:
22136e7745Sopenharmony_ci
23136e7745Sopenharmony_ci```
24136e7745Sopenharmony_citest result: ok. 0 passed; 0 failed; 26 ignored; 0 measured; 0 filtered out
25136e7745Sopenharmony_ci
26136e7745Sopenharmony_ci     Running target/release/deps/datetime_format-8facb4ac832d9770
27136e7745Sopenharmony_ci
28136e7745Sopenharmony_cirunning 2 tests
29136e7745Sopenharmony_citest rfc3339_chrono            ... bench:         737 ns/iter (+/- 37)
30136e7745Sopenharmony_citest rfc3339_humantime_seconds ... bench:          73 ns/iter (+/- 2)
31136e7745Sopenharmony_ci
32136e7745Sopenharmony_citest result: ok. 0 passed; 0 failed; 0 ignored; 2 measured; 0 filtered out
33136e7745Sopenharmony_ci
34136e7745Sopenharmony_ci     Running target/release/deps/datetime_parse-342628f877d7867c
35136e7745Sopenharmony_ci
36136e7745Sopenharmony_cirunning 6 tests
37136e7745Sopenharmony_citest datetime_utc_parse_millis  ... bench:         228 ns/iter (+/- 11)
38136e7745Sopenharmony_citest datetime_utc_parse_nanos   ... bench:         236 ns/iter (+/- 10)
39136e7745Sopenharmony_citest datetime_utc_parse_seconds ... bench:         204 ns/iter (+/- 18)
40136e7745Sopenharmony_citest rfc3339_humantime_millis   ... bench:          28 ns/iter (+/- 1)
41136e7745Sopenharmony_citest rfc3339_humantime_nanos    ... bench:          36 ns/iter (+/- 2)
42136e7745Sopenharmony_citest rfc3339_humantime_seconds  ... bench:          24 ns/iter (+/- 1)
43136e7745Sopenharmony_ci
44136e7745Sopenharmony_citest result: ok. 0 passed; 0 failed; 0 ignored; 6 measured; 0 filtered out
45136e7745Sopenharmony_ci```
46136e7745Sopenharmony_ci
47136e7745Sopenharmony_ciSee [humantime-serde] for serde integration (previous crate [serde-humantime] looks unmaintained).
48136e7745Sopenharmony_ci
49136e7745Sopenharmony_ci[serde-humantime]: https://docs.rs/serde-humantime/0.1.1/serde_humantime/
50136e7745Sopenharmony_ci[humantime-serde]: https://docs.rs/humantime-serde
51136e7745Sopenharmony_ci
52136e7745Sopenharmony_ciLicense
53136e7745Sopenharmony_ci=======
54136e7745Sopenharmony_ci
55136e7745Sopenharmony_ciLicensed under either of
56136e7745Sopenharmony_ci
57136e7745Sopenharmony_ci* Apache License, Version 2.0, (./LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
58136e7745Sopenharmony_ci* MIT license (./LICENSE-MIT or http://opensource.org/licenses/MIT)
59136e7745Sopenharmony_ci
60136e7745Sopenharmony_ciat your option.
61136e7745Sopenharmony_ci
62136e7745Sopenharmony_ciContribution
63136e7745Sopenharmony_ci------------
64136e7745Sopenharmony_ci
65136e7745Sopenharmony_ciUnless you explicitly state otherwise, any contribution intentionally
66136e7745Sopenharmony_cisubmitted for inclusion in the work by you, as defined in the Apache-2.0
67136e7745Sopenharmony_cilicense, shall be dual licensed as above, without any additional terms or
68136e7745Sopenharmony_ciconditions.
69