首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从time.Time中获取civil.Datetime

如何从time.Time中获取civil.Datetime
EN

Stack Overflow用户
提问于 2018-07-03 14:26:00
回答 2查看 2.2K关注 0票数 5

由于来自Bigquery数据库的查询响应,我必须使用civil.Datetime。

我怎样才能从戈朗的time.Time上得到civil.Datetime的约会?

类似于:

代码语言:javascript
复制
var date time.Time = civil.ToTime(myCivilTime)

我查看了公共时间文档:https://godoc.org/cloud.google.com/go/civil,并且有一个函数似乎使我想要的东西。

代码语言:javascript
复制
func (d Date) In(loc *time.Location) time.Time

但我不确定该如何设置*time.Location参数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-03 16:36:07

使用任何对您的应用程序有意义的time.Location。例如,

代码语言:javascript
复制
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")
}

输出:

代码语言:javascript
复制
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
票数 7
EN

Stack Overflow用户

发布于 2019-10-23 10:27:45

除了@peterSO的答案之外,如果您只是不想依赖于机器的区域时间,则可以转换为string,然后再转换为time.Time

代码语言:javascript
复制
t, err := time.Parse("2006-01-02", myCivilDateTime.Date.String())

https://play.golang.org/p/MW9DrQ89Mwu

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51157052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档