程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从 Go 中的时间减去 time.Duration大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从 Go 中的时间减去 time.Duration?

开发过程中遇到从 Go 中的时间减去 time.Duration的问题如何解决?下面主要结合日常开发的经验,给出你关于从 Go 中的时间减去 time.Duration的解决方法建议,希望对你解决从 Go 中的时间减去 time.Duration有所启发或帮助;

尝试ADDDATE:

package main

import (
    "fmt"
    "time"
)

func main() {
    Now := time.Now()

    fmt.Println("Now:", Now)

    then := Now.AddDate(0, -1, 0)

    fmt.Println("then:", then)
}

产生:

Now: 2009-11-10 23:00:00 +0000 UTC
then: 2009-10-10 23:00:00 +0000 UTC

为了回应 Thomas browne 的评论,因为lnmx 的答案仅适用于减去日期,这里是对他的代码的修改,用于从 time.Time 类型中减去时间。

package main

import (
    "fmt"
    "time"
)

func main() {
    Now := time.Now()

    fmt.Println("Now:", Now)

    count := 10
    then := Now.Add(time.Duration(-count) * time.minutE)
    // if we had fix number of units to subtract, we can use following line instead fo above 2 lines. It does type convertion automatically.
    // then := Now.Add(-10 * time.minutE)
    fmt.Println("10 minutes ago:", then)
}

产生:

Now: 2009-11-10 23:00:00 +0000 UTC
10 minutes ago: 2009-11-10 22:50:00 +0000 UTC

更不用说,您还可以根据需要使用time.Hourtime.Second代替time.minute

解决方法

我有一个time.Time从中获得的值time.Now(),我想再获得一次,也就是 1 个月前。

我知道可以使用time.Sub()(需要另一个time.Time)进行减法,但这会导致 a ,time.Duration而我需要反过来。

大佬总结

以上是大佬教程为你收集整理的从 Go 中的时间减去 time.Duration全部内容,希望文章能够帮你解决从 Go 中的时间减去 time.Duration所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。