【问题标题】:How can I round a chrono::Datetime to the nearest second?如何将 chrono::Datetime 舍入到最接近的秒?
【发布时间】:2019-05-22 20:25:52
【问题描述】:

我想使用 chrono crate 将当前时间四舍五入到最接近的秒数,但我不知道如何去除或舍入结果 chrono::UTC.now().

似乎没有任何操作可以修改现有的`DateTime

chrono::UTC.now()

返回:2019-05-22T20:07:59.250194427Z

我要获取:2019-05-22T20:07:59.000000000Z

如果不将DateTime 值分解为其组件并重新创建它,我将如何以最有效的方式执行此操作?

【问题讨论】:

    标签: datetime rust rust-cargo chrono


    【解决方案1】:

    使用round_subsecs method0 作为参数。

    use chrono::prelude::*;
    
    fn main() {
        let utc: DateTime<Utc> = Utc::now().round_subsecs(0);
        println!("{}", utc);
    }
    

    结果是:

    2019-05-22 20:50:46 UTC
    

    【讨论】:

    • round_subsecs(6) 也可以通过use chrono::{SubsecRound, Utc}; 启用。此功能适用于具有 6 位数字的 Postgres 类型 TIMESTAMPTZ,而不是通常的具有 9 位数字的 chrono 类型 DateTime&lt;Utc&gt;,例如assert_eq!(...) 失败。
    猜你喜欢
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 2018-05-27
    • 2014-12-12
    相关资源
    最近更新 更多