【问题标题】:How to always show milliseconds when parsing datetime with chrono in rust?如何在 rust 中使用 chrono 解析日期时间时始终显示毫秒?
【发布时间】:2022-01-07 21:39:48
【问题描述】:

我正在尝试像这样格式化chrono::NaiveDate%Y-%m-%dT%H:%M:%S%.f

根据documentation 中的第三个示例,我希望它会像这样工作:

use chrono::NaiveDate;

fn main() {
    let date = NaiveDate::from_ymd(2015, 7, 1).and_hms_milli(0, 0, 0, 0);
    println!("{}", date.format("%Y-%m-%dT%H:%M:%S%.f"));
}

但是,而不是所需的输出 2015-07-01T00:00:00.000 这将打印 2015-07-01T00:00:00

Rust Playground is here

显然,如果毫秒不为零,则仅包含毫秒:

use chrono::NaiveDate;

fn main() {
    let date = NaiveDate::from_ymd(2015, 7, 1).and_hms_milli(0, 0, 0, 1);
    println!("{}", date.format("%Y-%m-%dT%H:%M:%S%.f"));
}

是否可以选择始终包含它们?

【问题讨论】:

    标签: datetime rust datetime-format


    【解决方案1】:

    您可以使用.3f as the last specifier。这类似于.%f 但左对齐但长度固定为 3

    println!("{}", date.format("%Y-%m-%dT%H:%M:%S%.3f"));
    

    【讨论】:

      猜你喜欢
      • 2021-09-27
      • 2016-11-02
      • 1970-01-01
      • 2019-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      相关资源
      最近更新 更多