簡體   English   中英

Rust Chrono date parse from RFC2822 allow time zone string at the end of the string

[英]Rust Chrono date parse from RFC2822 allow time zone string at the end of the string

我正在嘗試解析郵件標頭。 我正在嘗試使用 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”的情況下解析它?

chrono中的一個錯誤

它已得到修復,可能會在 chrono 版本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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM