I'm using rust-chrono
and I'm trying to parse a date like this:
extern crate chrono;
use chrono::*;
fn main() {
let date_str = "2013-02-14 15:41:07";
let date = DateTime::parse_from_str(&date_str, "%Y-%m-%d %H:%M:%S");
match date {
Ok(v) => println!("{:?}", v),
Err(e) => println!("{:?}", e)
}
}
And this is the output:
ParseError(NotEnough)
What does this mean? Not enough of what? Should I be using some other library?
Types that implement Error
have more user-friendly error messages via Error::description
or Display
:
Err(e) => println!("{}", e)
This prints:
input is not enough for unique date and time
Presumably this is because you haven't provided a timezone, thus the time is ambiguous.
The ParseError(NotEnough) shows up when there is not enough information to fill out the whole object. For example the date, time or timezone is missing.
In the example above the timezone is missing. So we can store it in a NaiveDateTime. This object does not store a timezone:
let naive_datetime = NaiveDateTime::parse_from_str(date_str, "%Y-%m-%d %H:%M:%S").unwrap();
For more info: https://stackoverflow.com/a/61179071/2037998
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With