rust - 如何将 DateTime<UTC> 转换为 DateTime<FixedOffset> 或反之?

标签 rust rust-chrono

我有一个包含时间戳的结构。 为此,我正在使用 chrono library .获取时间戳的方式有两种:

  1. 通过 DateTime::parse_from_str 从字符串中解析出来结果是 DateTime<FixedOffset>
  2. 当前时间,由 UTC::now 接收结果是 DateTime<UTC> .

有没有办法转换DateTime<UTC>DateTime<FixedOffset>

最佳答案

我相信您正在寻找DateTime::with_timezone :

use chrono::{DateTime, Local, TimeZone, Utc}; // 0.4.9

fn main() {
    let now = Utc::now();
    let then = Local
        .datetime_from_str("Thu Jul  2 23:26:06 EDT 2015", "%a %h %d %H:%M:%S EDT %Y")
        .unwrap();

    println!("{}", now);
    println!("{}", then);

    let then_utc: DateTime<Utc> = then.with_timezone(&Utc);

    println!("{}", then_utc);
}

我在 then_utc 上添加了一个冗余类型注释,以表明它是 UTC 格式的。此代码打印

2019-10-02 15:18:52.247884539 UTC
2015-07-02 23:26:06 +00:00
2015-07-02 23:26:06 UTC

关于rust - 如何将 DateTime<UTC> 转换为 DateTime<FixedOffset> 或反之?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31186864/

相关文章:

replace - 替换 Rust 中的路径部分

rust - 如何重用 SplitWhitespace 迭代器?

datetime - 如何将 chrono::Datetime 舍入到最接近的秒数?

rust - 如何使用 Rust chrono 获得 1 天的持续时间?

rust - 如何使用 rusqlite 在 sqlite 数据库中插入和获取日期?

javascript - 使用rust+webassembly进行web开发,如何解决wasm与js交互的额外开销

json - 根据 JSON 中的字段有条件地解码 JSON

rust - 我如何将参数从函数传递到宏

datetime - Rust chrono 给出 ParseError(NotEnough)