gpt4 book ai didi

rust - 如何解析 RFC2822 中的日期,允许在字符串末尾使用时区?

转载 作者:行者123 更新时间:2023-12-05 05:38:25 31 4
gpt4 key购买 nike

我正在尝试解析邮件 header 。我正在尝试用 Chrono 解析日期,方法是给它 RFC2822 strings .问题是它无法解析格式为 2 Nov 2021 14:26:12 +0000 (UTC) 的字符串,问题似乎是最后一部分 (UTC) 。我怎样才能让 Chrono 也解析这些字符串?

use chrono::prelude::DateTime; // 0.4.19
use regex::Regex; // 1.6.0

let date = "2 Nov 2021 14:26:12 +0000"; // does work
let date = "2 Nov 2021 14:26:12 +0000 (UTC)"; // does not work

// regex parses "[+-]dddd (www)" => " "[+-]dddd"
let re = Regex::new(r"([+-]?\d{4}) \(\w+\)$").unwrap();
let date = DateTime::parse_from_rfc2822(
&re.replace(date_rfc2822_str, "$1")
)
.unwrap()
);

我可以使用正则表达式只删除最后一部分,但是否可以在没有这种“hack”的情况下解析它?

最佳答案

was a bug in chrono .

got fixed并且可能会在计时版本 0.4.20 中发布。

use chrono::prelude::DateTime; // main branch

fn main() {
let date = "2 Nov 2021 14:26:12 +0000 (UTC)";
println!("{}", DateTime::parse_from_rfc2822(date).unwrap());
}
2021-11-02 14:26:12 +00:00

关于rust - 如何解析 RFC2822 中的日期,允许在字符串末尾使用时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72914608/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com