英文:
How to add 1 sec to the date in golang?
问题
如何在Golang中将日期增加1秒?我有以下代码:
t := time.Now().Format("2006/02/01 03:04:05")
我想要实现以下效果,但是目前遇到了"mismatched types string and time.Duration"错误:
t1, t2, t3 = t + 1*time.Second, t+3*time.Second, t+2*time.Second
你可以使用time.Parse
函数将字符串解析为time.Time
类型,然后使用time.Add
方法增加时间间隔。下面是修改后的代码:
t := time.Now()
t1 := t.Add(1 * time.Second).Format("2006/02/01 03:04:05")
t2 := t.Add(3 * time.Second).Format("2006/02/01 03:04:05")
t3 := t.Add(2 * time.Second).Format("2006/02/01 03:04:05")
这样就可以将当前时间增加指定的秒数,并格式化为字符串。
英文:
How to add 1 sec to the date in golang ? I have:
t := time.Now().Format("2006/02/01 03:04:05")
and want something like below but so far getting mismatched types string and time.Duration error
t1, t2, t3 = t + 1*time.Second, t+3*time.Second, t+2*time.Second
答案1
得分: 6
func (t Time) Add(d Duration) Time
https://golang.org/pkg/time/#Time.Add
这段代码是Go语言中的时间包(time)中的一个方法。它的作用是将一个持续时间(Duration)加到给定的时间(Time)上,并返回一个新的时间(Time)。
你可以在https://golang.org/pkg/time/#Time.Add 查看更多关于这个方法的详细信息。
答案2
得分: 4
你正在将一个 string
分配给 t
(调用 Format
的结果),而不是一个 Time
(调用 Now
的结果)。这是一个可工作的示例:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
fmt.Println(t.Format(time.RFC3339))
t = t.Add(time.Second)
fmt.Println(t.Format(time.RFC3339))
}
// 输出结果
// 2017-01-21T16:51:31-05:00
// 2017-01-21T16:51:32-05:00
请注意,这段代码使用 Go 语言编写。
英文:
You are asigning a string
to t
(the result of calling Format
) instead of a Time
(the result of calling Now
). Here's an working example:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
fmt.Println(t.Format(time.RFC3339))
t = t.Add(time.Second)
fmt.Println(t.Format(time.RFC3339))
}
// prints
// 2017-01-21T16:51:31-05:00
// 2017-01-21T16:51:32-05:00
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论