gpt4 book ai didi

rust - 特性 `std::ops::Add` 没有为 `chrono::DateTime` 实现

转载 作者:行者123 更新时间:2023-11-29 07:56:12 26 4
gpt4 key购买 nike

extern crate chrono;
use chrono::{DateTime, Utc};
use std::time::Duration;

pub fn after(start: DateTime<Utc>) -> DateTime<Utc> {
start + Duration::from_secs(1)
}

失败:

error[E0277]: cannot add `std::time::Duration` to `chrono::DateTime<chrono::Utc>`
--> src/lib.rs:7:11
|
7 | start + Duration::from_secs(1_000_000_000)
| ^ no implementation for `chrono::DateTime<chrono::Utc> + std::time::Duration`
|
= help: the trait `std::ops::Add<std::time::Duration>` is not implemented for `chrono::DateTime<chrono::Utc>`

我找不到 Add 的实现导入。 use chrono::*不会有帮助的。

我看到了 datetime.rsAdd<chrono::oldtime::Duration> 的含义,但是oldtime是私有(private)的,所以我不知道如何创建 oldtime::Duration .

我如何获得 Add暗示我需要?如何转换 std::time::Durationchrono::oldtime::Duration ?有什么我可以导入以隐式转换的东西吗?

我正在使用 rustc 1.25.0 (84203cac6 2018-03-25)

最佳答案

有函数可以转换fromto std::time::Duration 所以你可以这样做:

start + ::chrono::Duration::from_std(Duration::from_secs(1)).expect("1s can't overflow")

但是如果你能坚持使用chrono,就坚持使用chrono:

use chrono::{DateTime, Utc, Duration};
start + Duration::seconds(1)

关于rust - 特性 `std::ops::Add<std::time::Duration>` 没有为 `chrono::DateTime<chrono::Utc>` 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50124299/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com