簡體   English   中英

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)

這是什么意思? 還不夠什么? 我應該使用其他圖書館嗎?

實現Error類型通過Error::descriptionDisplay具有更多用戶友好的錯誤消息:

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();

更多信息: https : //stackoverflow.com/a/61179071/2037998

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM