【问题标题】:How do I add days to a Chrono UTC?如何为 Chrono UTC 添加天数?
【发布时间】:2023-03-03 22:37:02
【问题描述】:

我正在尝试找到将天数添加到 Chrono UTC 的首选方法。我想在当前时间上加 137 天:

let dt = UTC::now();

【问题讨论】:

    标签: rust rust-chrono


    【解决方案1】:

    只需使用Duration 和适当的operator

    use chrono::{Duration, Utc};
    
    fn main() {
        let dt = Utc::now() + Duration::days(137);
    
        println!("today date + 137 days {}", dt);
    }
    

    Test on playground.

    【讨论】:

    • 谢谢,我错过了算术部分。很棒的社区,很棒的箱子。文档格式感觉就像我在阅读 MSDN。感谢您提供正确的简单答案,比我第 11 次阅读这些文档后所做的要好得多:-)
    【解决方案2】:

    我只是想改进@Stargateur 的答案。无需使用time crate,因为chrono crate 中有Duration 结构:

    extern crate chrono;
    
    use chrono::{Duration, Utc};
    
    fn main() {
        let dt = Utc::now() + Duration::days(137);
    
        println!("{}", dt);
    }
    

    Another test on playground

    【讨论】:

    • 请注意,目前Duration 只是time::Duration 的包装,直接使用Duration 可能会发生重大变化
    • @Stargateur 如果 chrono 和 time crates 之间发生了重大变化,我认为使用 chrono 的 Duration 可以让我依靠 chrono crate 来解决问题,所以我可以只需更新一个依赖项,而无需自己更改代码。
    • 截至 2020 年 5 月,使用 chrono::Duration 实际上是必要的,因为 time::Duration 没有实现加法特征。
    猜你喜欢
    • 2020-10-25
    • 2021-03-29
    • 1970-01-01
    • 2021-01-12
    • 2018-03-22
    • 2015-04-29
    • 2023-03-21
    • 1970-01-01
    • 2011-07-01
    相关资源
    最近更新 更多