rust-chrono 中的 ParseError(NotEnough) 是什么意思?
What does ParseError(NotEnough) from rust-chrono mean?
我正在使用 rust-chrono
并尝试像这样解析日期:
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)
}
}
这是输出:
ParseError(NotEnough)
这是什么意思?不够怎么办?我应该使用其他库吗?
你应该使用
UTC.datetime_from_str(&date_str, "%Y-%m-%d %H:%M:%S");
喜欢:
extern crate chrono;
use chrono::*;
fn main() {
let date_str = "2013-02-14 15:41:07";
let date = UTC.datetime_from_str(&date_str, "%Y-%m-%d %H:%M:%S");
match date {
Ok(v) => println!("{:?}", v),
Err(e) => println!("{:?}", e)
}
}
实现 Error
的类型通过 Error::description
或 Display
:
提供更易于使用的错误消息
Err(e) => println!("{}", e)
这会打印:
input is not enough for unique date and time
估计是因为你没有提供时区,所以时间不明确。
当没有足够的信息来填写整个对象时,将出现 ParseError(NotEnough)。例如缺少日期、时间或时区。
在上面的示例中缺少时区。所以我们可以将它存储在NaiveDateTime中。此对象不存储时区:
let naive_datetime = NaiveDateTime::parse_from_str(date_str, "%Y-%m-%d %H:%M:%S").unwrap();
更多信息:
我正在使用 rust-chrono
并尝试像这样解析日期:
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)
}
}
这是输出:
ParseError(NotEnough)
这是什么意思?不够怎么办?我应该使用其他库吗?
你应该使用
UTC.datetime_from_str(&date_str, "%Y-%m-%d %H:%M:%S");
喜欢:
extern crate chrono;
use chrono::*;
fn main() {
let date_str = "2013-02-14 15:41:07";
let date = UTC.datetime_from_str(&date_str, "%Y-%m-%d %H:%M:%S");
match date {
Ok(v) => println!("{:?}", v),
Err(e) => println!("{:?}", e)
}
}
实现 Error
的类型通过 Error::description
或 Display
:
Err(e) => println!("{}", e)
这会打印:
input is not enough for unique date and time
估计是因为你没有提供时区,所以时间不明确。
当没有足够的信息来填写整个对象时,将出现 ParseError(NotEnough)。例如缺少日期、时间或时区。
在上面的示例中缺少时区。所以我们可以将它存储在NaiveDateTime中。此对象不存储时区:
let naive_datetime = NaiveDateTime::parse_from_str(date_str, "%Y-%m-%d %H:%M:%S").unwrap();
更多信息: