假设我有
t := time.Parse("15:04:05.000", "12:16:54.016")
这将返回一个 time.Time,它打印为:
0000-01-01 12:16:54.016 +0000 UTC
但我知道实际日期是什么,并将其存储为一个名为 timestamp
的变量,它已经是一个 time.Time 结构。如何组合它们?
例如假设日期是 2019-06-17。我需要的输出是:
2019-06-17 12:16:54.016 +0000 UTC
// this doesn't compile
ts.AddDate(timestamp.Year(), timestamp.Month(), timestamp.Day())
cannot use timestamp.Month() (type time.Month) as type int in argument to ts.AddDate
这应该是微不足道的吧?好吧,这是我最习惯的 C 语言。但是我还没有轻松找到golang的答案。文档没有告诉我实际的基础字段名称,只是功能。 :-/
最佳答案
package main
import (
"fmt"
"log"
"time"
)
func main() {
d, err := time.Parse("2006-01-02", "2019-06-17")
if err != nil {
log.Fatal(err)
}
fmt.Println(d)
t, err := time.Parse("15:04:05.000", "12:16:54.016")
if err != nil {
log.Fatal(err)
}
fmt.Println(t)
f := d.Add(time.Hour*time.Duration(t.Hour()) + time.Minute*time.Duration(t.Minute()) + time.Second*time.Duration(t.Second()) + time.Nanosecond*time.Duration(t.Nanosecond()))
fmt.Println(f)
}
关于go - 在 golang 中结合时间和日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57066301/