[英]Call to NaiveDateTime::parse_from_str fails when invoked at one place but works from other point
[英]Rust chrono::NaiveTime::parse_from_str() fails to parse PM
使用 Rust chrono::NaiveTime::parse_from_str() 解析字符串时,似乎解析 AM 有效,但 PM 无效(返回 ParseErrorKind::Impossible)。 以下失败是否有原因?
第一个示例time_am
是一个正确解析的带有 AM 的时间字符串。
第二个示例time_pm
是一个带有无法解析的 PM 的时间字符串。
fn main() {
let time_am = chrono::NaiveTime::parse_from_str("08:30 AM", "%H:%M %p");
println!(
"time_am: {}",
match time_am {
Ok(time) => time.to_string(),
Err(error) => error.to_string(),
}
);
let time_pm = chrono::NaiveTime::parse_from_str("08:30 PM", "%H:%M %p");
println!(
"time_pm: {}",
match time_pm {
Ok(time) => time.to_string(),
Err(error) => error.to_string(),
}
);
}
结果:
time_am: 08:30:00
time_pm: no possible date and time matching input
该错误字符串对应于mod.rs
中的以下行:
ParseErrorKind::Impossible => write!(f, "no possible date and time matching input"),
在发布问题后不久,我自己找到了答案。 问题是%H
的使用对应于 24 小时制。 我需要使用%I
12 小时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.