[英]Rust Chrono parse date String, ParseError(NotEnough) and ParseError(TooShort)
[英]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)
這是什么意思? 還不夠什么? 我應該使用其他圖書館嗎?
實現Error
類型通過Error::description
或Display
具有更多用戶友好的錯誤消息:
Err(e) => println!("{}", e)
這打印:
對於唯一的日期和時間,輸入是不夠的
大概這是因為您沒有提供時區,因此時間不明確。
你應該使用
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)
}
}
ParseError(NotEnough) 當沒有足夠的信息來填充整個對象時會出現。 例如,缺少日期、時間或時區。
在上面的示例中,缺少時區。 所以我們可以將它存儲在NaiveDateTime 中。 此對象不存儲時區:
let naive_datetime = NaiveDateTime::parse_from_str(date_str, "%Y-%m-%d %H:%M:%S").unwrap();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.