如何找到 2 个 NaiveDateTimes 之间的差异?

Kur*_*ama 2 datetime timestamp rust rust-chrono

我正在使用chrono。我还有now()一些其他的NaiveDateTime。我怎样才能找到它们之间的区别?

let now = Utc::now().naive_utc();
let dt1 = get_my_naive_datetime();
Run Code Online (Sandbox Code Playgroud)

tre*_*tcl 7

在更新的版本中chrono(至少从 0.4.22 开始,可能更早),您可以简单地减去NaiveDateTimes:

println!("{:?}", dt1 - now);
Run Code Online (Sandbox Code Playgroud)

结果是 a Duration,它有方法可以转换为您喜欢的任何单位,例如(dt1 - now).num_days()

在旧版本中chrono,您必须使用NaiveDateTime::signed_duration_since

println!("{:?}", dt1.signed_duration_since(now));
Run Code Online (Sandbox Code Playgroud)

  • @Kurama 有什么问题吗?此方法返回“Duration”对象,其中包含您想要的所有方法 - 获取天、小时和分钟。只要打开该链接,您就会看到。 (2认同)