如何为 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>`