英文:
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
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论