【问题标题】:How to parse "2019-09-19 04:03:01.770080087 +0000 UTC" timestamp [duplicate]如何解析“2019-09-19 04:03:01.770080087 +0000 UTC”时间戳[重复]
【发布时间】:2020-01-21 17:02:34
【问题描述】:

我将如何解析这个时间戳?

"2019-09-19 04:03:01.770080087 +0000 UTC"

我尝试了以下方法:

formatExample := obj.CreatedOn // obj.CreatedOn = "2019-09-19 04:03:01.770080087 +0000 UTC"
time, err := time.Parse(formatExample, obj.CreatedOn)
check(err)
fmt.Println(time)

但我得到的输出是:

0001-01-01 00:00:00 +0000 UTC

【问题讨论】:

    标签: go time timestamp utc


    【解决方案1】:

    一点点就可以了

    package main
    
    import (
        "fmt"
        "time"
    )
    
    func main() {
        layout := "2006-01-02 15:04:05 -0700 MST"
        t, _ := time.Parse(layout, "2019-09-19 04:03:01.770080087 +0000 UTC")
        fmt.Println(t)
    }
    

    输出:

    2019-09-19 04:03:01.770080087 +0000 UTC

    【讨论】:

      【解决方案2】:

      您传递给 parse 的时间格式不是“示例”格式。每个时间字段都有一个不同的值:

      Mon Jan 2 15:04:05 -0700 MST 2006
      

      例如,如果你想用你的格式描述年份,你必须使用 2006。所以你的格式必须是:

      2006-01-02 15:04:05.000000000 -0700 MST
      

      【讨论】:

        【解决方案3】:

        Parse 解析格式化字符串并返回它所代表的时间值。布局通过显示参考时间来定义格式,定义为

        Mon Jan 2 15:04:05 -0700 MST 2006

        如果是值就会被解释;它用作输入格式的示例。然后将对输入字符串进行相同的解释。

        formatExample := "2006-01-02 15:04:05.999999999 -0700 MST"
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-01-19
          • 2018-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-24
          • 1970-01-01
          相关资源
          最近更新 更多