[英]BadFormat parsing string to date when using Chrono
我正在嘗試使用 Chrono 庫將字符串轉換為日期。 我總是收到BadFormat
或NotEnough
錯誤:
extern crate chrono;
use chrono::prelude::*;
fn main() {
let dt1 = DateTime::parse_from_str(
"2017-08-30 18:34:06.638997932 UTC",
"%Y-%m-%d %H:%M:%S.%9f"
);
println!("{:?}", dt1);
}
我不確定我做錯了什么。
如評論中所述,您的格式字符串不允許使用字符串的" UTC"
部分。 這就是您收到BadFormat
錯誤的原因。
如果您在格式字符串中添加" UTC"
,您仍然會收到BadFormat
錯誤,因為您輸入了.%9f
,而它應該是%.9f
。
一旦你解決了這個問題,你會得到一個NotEnough
錯誤,因為我們實際上並沒有解析時區。
我會使用NaiveDateTime
始終以 UTC 解析,然后將" UTC"
添加到格式字符串中以忽略它,更正錯字:
use chrono::prelude::*; // 0.4.9
fn main() {
let dt1 = NaiveDateTime::parse_from_str(
"2017-08-30 18:34:06.638997932 UTC",
"%Y-%m-%d %H:%M:%S%.9f UTC",
);
println!("{:?}", dt1); // Ok(2017-08-30T18:34:06.638997932)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.