在 rust chrono 中将日期时间字符串解析为本地时间

see*_*per 6 datetime parsing rust

遇到一个简单的问题时遇到困难。我有一个不包含时区信息的字符串,我需要将其解析为 DateTime 结构。我可以得到它作为 UTC,但不是本地的:

let from = NaiveDateTime::parse_from_str(&start_date, "%Y-%m-%dT%H:%M:%S")?;
let from_utc = DateTime::<Utc>::from_utc(from, Utc);
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 5

您需要Local.from_local_datetime()将 a 转换NaiveDateTime为 a DateTime<Local>

let from: NaiveDateTime = start_date.parse().unwrap();
let date_time = Local.from_local_datetime(&from).unwrap();
Run Code Online (Sandbox Code Playgroud)

诚然,这在文档中并不容易找到。

你的第一行也工作得很好。不过,对于这种特定格式 (RFC3339),使用起来更容易str::parse()