Datetime 使用Chrono时,BadFormat解析字符串到日期
我正在尝试使用Chrono库将字符串转换为日期。我总是收到Datetime 使用Chrono时,BadFormat解析字符串到日期,datetime,rust,Datetime,Rust,我正在尝试使用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!("
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)
}
“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)
}
格式字符串缺少时区说明符格式字符串缺少时区说明符如何解析
字符串而不是&'static str
?Chrono的所有示例始终使用和'static str
。但在真正的程序中,你不是这样做的。在生产中,您对所有内容都使用String
。@TheFox。TL;DR:如果您有一个s:String
,您可以传递&s
,它将成为&str
,我如何解析字符串而不是和静态str
?Chrono的所有示例始终使用和'static str
。但在真正的程序中,你不是这样做的。在生产中,您对所有内容都使用String
。@TheFox。TL;DR:如果您有一个s:String
,您可以传递&s
,它将成为&str