繁体   English   中英

Rust chrono::NaiveTime::parse_from_str() 无法解析 PM

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM