![](/img/trans.png)
[英]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.