< 返回版块

github.com/shanliu/lsys 发表于 2023-02-21 17:31

chrono 怎么指定时区解析时间?

加%Z不生效

按下面按0时区解析自动本地时区+8小时

  let t = "2023-02-21 16:28:11";
    let dt = NaiveDateTime::parse_from_str(t, "%Y-%m-%d %H:%M:%S")
        .map_err(JsonData::error)
        .unwrap();
    println!("{}", dt.timestamp());

评论区

写评论
作者 github.com/shanliu/lsys 2023-02-21 22:53
 let t = "2023-02-21 16:28:11";
    let dt = NaiveDateTime::parse_from_str(t, "%Y-%m-%d %H:%M:%S").unwrap();
    let bb = Local::now()
        .timezone()
        .offset_from_local_datetime(&dt)
        .unwrap();
    let dt = dt.and_local_timezone(bb).unwrap();
    println!("{}", dt.timestamp());

好烦 要手动调时区

苦瓜小仔 2023-02-21 22:29
fn local_offset() -> FixedOffset {
    *Local::now().offset()
}

playground

注意,从 playground 得到的是 0 时区(UTC),我本地得到的是东八区。

苦瓜小仔 2023-02-21 17:58
.and_local_timezone(FixedOffset::east_opt(8 * 3600).unwrap())

playground

1 共 3 条评论, 1 页