pub fn duration(string: &str) -> Result<Duration, String>
Expand description
Parses a duration string.
A string starts with P
and can have one of the following formats:
- Fully-specified duration:
P1Y2M3DT4H5M6S
- Duration in weekly intervals:
P1W
- Fully-specified duration in
DateTime
format:P<datetime>
Both fully-specified formats get parsed into the YMDHMS Duration variant. The weekly interval format gets parsed into the Weeks Duration variant.
The ranges for each of the individual units are not expected to exceed the next largest unit.
These ranges (inclusive) are as follows:
- Year (any valid u32)
- Month 0 - 12
- Week 0 - 52
- Day 0 - 31
- Hour 0 - 24
- Minute 0 - 60
- Second 0 - 60
§Examples
let duration = iso8601::duration("P1Y2M3DT4H5M6S").unwrap();
let duration = iso8601::duration("P1W").unwrap();
let duration = iso8601::duration("P2015-11-03T21:56").unwrap();