go - 在golang中结合时间和日期?
问题描述
假设我有
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)
}
推荐阅读
- c# - 对用户进行身份验证时出现 JWT 令牌问题
- java - 铸造Java功能接口
- python - 查找列表中出现的数字
- java - 如何创建 org.reactivestreams.Publisher
来自 java.io.InputStream? - docusignapi - 没有数字选项卡的 Docusign 支付网关
- spring-boot - Spring Security & Keycloak:保持登录状态
- python - Numpy数组连接:ValueError:连接轴的所有输入数组维度必须完全匹配
- spring-boot - 是否可以在 SpringBoot 中注册控制器特定的 ObjectMapper
- javascript - 使用 wavesurfer-js 在一页中显示多个波形
- c - protobuf-c 在 Cygwin 上构建