如何从civil.Datetime获取时间
由于来自Bigquery数据库的查询响应,我必须使用civil.Datetime 我怎样才能从civil.Datetime获得时间。Golang的Datetime 比如:如何从civil.Datetime获取时间,date,go,Date,Go,由于来自Bigquery数据库的查询响应,我必须使用civil.Datetime 我怎样才能从civil.Datetime获得时间。Golang的Datetime 比如: var date time.Time = civil.ToTime(myCivilTime) 我查看了civil time文档:这里有一个函数,似乎满足了我的要求 func (d Date) In(loc *time.Location) time.Time 但是我不确定如何设置*time.Location参数。使用对您的应
var date time.Time = civil.ToTime(myCivilTime)
我查看了civil time文档:这里有一个函数,似乎满足了我的要求
func (d Date) In(loc *time.Location) time.Time
但是我不确定如何设置*time.Location参数。使用对您的应用程序有意义的
time.Location。比如说,
package main
import (
"fmt"
"time"
"cloud.google.com/go/civil"
)
func main() {
now := time.Now().Round(0)
fmt.Println(now, " : time Now")
d := civil.DateTimeOf(now)
fmt.Println(d, " : civil DateTime")
t := d.In(time.UTC)
fmt.Println(t, " : time UTC")
t = d.In(time.Local)
fmt.Println(t, " : time Local")
pacific, err := time.LoadLocation("America/Los_Angeles")
if err != nil {
fmt.Println(err)
return
}
t = d.In(pacific)
fmt.Println(t, " : time Pacific")
}
输出:
2018-07-03 12:46:15.728611385 -0400 EDT : time Now
2018-07-03T12:46:15.728611385 : civil DateTime
2018-07-03 12:46:15.728611385 +0000 UTC : time UTC
2018-07-03 12:46:15.728611385 -0400 EDT : time Local
2018-07-03 12:46:15.728611385 -0700 PDT : time Pacific
除了@peterSO的答案,如果您不想依赖机器的区域时间,您可以将其转换为string
,然后再转换为time.time
:
t, err := time.Parse("2006-01-02", myCivilDateTime.Date.String())
传入您希望在中接收生成的time.time
的位置(时区),例如,或者如果您希望在本地时区中获得结果,请使用(Pass)time.local
。