如何为 Chrono UTC 添加天数?

Posted

技术标签:

【中文标题】如何为 Chrono UTC 添加天数?【英文标题】:How do I add days to a Chrono UTC? 【发布时间】:2017-11-26 09:51:21 【问题描述】:

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

let dt = UTC::now();

【问题讨论】:

【参考方案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 没有实现加法特征。

以上是关于如何为 Chrono UTC 添加天数?的主要内容,如果未能解决你的问题,请参考以下文章

`chrono::DateTime<chrono::Utc>` 没有实现特征`std::ops::Add<std::time::Duration>`

如何为 Spring Boot JPA 时间戳指定 UTC 时区

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

如何为特定的星期几设置重复通知?

如何为计时时间戳使用自定义 serde 反序列化器?

如何从 <chrono> 获取持续时间,如整数毫秒和浮点秒?