首页 > 解决方案 > 如何在 Rust 中将 SystemTime 转换为 ISO 8601?

问题描述

我有一个SystemTime变量,我想从那个日期获取 ISO 8601 格式。

标签: rustdatetime-formatiso8601

解决方案


chrono包是完成这里工作的正确工具。 SystemTime可能是也可能不是 UTC,chrono 会处理许多烦人的小细节。

use chrono::prelude::{DateTime, Utc};

fn iso8601(st: &std::time::SystemTime) -> String {
    let dt: DateTime<Utc> = st.clone().into();
    format!("{}", dt.format("%+"))
    // formats like "2001-07-08T00:34:60.026490+09:30"
}

要以不同方式自定义格式,请参阅chrono::format::strftime文档。


推荐阅读