【问题标题】:How to convert ISO 8601 time in golang?如何在golang中转换ISO 8601时间?
【发布时间】:2016-05-30 11:25:17
【问题描述】:

以下 shell 命令在 golang 中的等效代码是什么? date -u +%Y-%m-%dT%T%z

【问题讨论】:

    标签: go


    【解决方案1】:
    package main
    
    import (
        "time"
        "fmt"
    )
    
    func main(){
        fmt.Println(time.Now().Format(time.RFC3339))
    }
    

    golang Time.Format

    【讨论】:

    • 这应该是公认的答案。其他人可能会工作,但他们肯定会让不熟悉代码的人感到困惑。
    • ISO 8601 和 RFC3339 在技术上不是一回事。 stackoverflow.com/questions/522251/…
    • 据我所知,RFC3339 是 ISO 8601 的更严格版本。因此,如果系统需要 ISO,使用 RFC 格式可能是安全的。
    • 注意:似乎不需要先转换为UTC:play.golang.org/p/UDrkigOfgIc
    • @lukeic 那是因为 golang 操场在 UTC 时区工作。尝试在本地机器上运行。
    【解决方案2】:
    package main
    
    import (
        "fmt"
        "time"
    )
    
    func main() {
        fmt.Println(time.Now().UTC().Format("2006-01-02T15:04:05-0700"))
    }
    

    【讨论】:

      【解决方案3】:

      我有以下规格:

      YYYY-MM-DDThh:mm:ss.sssZ
      

      最终的Z 明确出现在示例中。

      我是这样处理的:

      • 首先我找到了离我的目标最近的time.RFCxxx
      • 我复制了它的值
      • 我一直在摆弄它,直到找到预期的结果

      这是

      2006-01-02T15:04:05.999Z
      

      【讨论】:

      • 获得此结果的 RFC 值是多少?
      • “我玩弄了它”——为什么我们不能有美好的约会。
      【解决方案4】:

      ISO8601 允许不同级别的粒度。您可以只有一年、年+月、年+月+日、添加时间部分,还可以选择添加时区部分。但是,Go 的内置时间解析要求您提前知道将包含哪些部分。

      github.com/btubbs/datetime 库提供了一个更灵活的解析器,可以处理所有常用的 ISO8601 格式。见https://github.com/btubbs/datetime

      披露:我编写了那个库。

      【讨论】:

      • “UnmarshalJSON 方法支持轻松解析来自外部系统的 ISO 8601 时间戳”
      【解决方案5】:

      将格式中的符号替换为 Z 会触发 ISO 8601 行为。这正是 time.RFC3339。如果您希望字符串输出以“Z”结尾,则需要转换为 UTC 时区。

      package main    
      import (
          "fmt"
          "time"
      )
      
      func main() {
          fmt.Println(time.Now().UTC().Format("2006-01-02T15:04:05Z07:00"))
      }
      // this is the same format used by RFC3339. just a note on why. 
      

      【讨论】:

      猜你喜欢
      • 2011-07-16
      • 1970-01-01
      • 2019-02-02
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      相关资源
      最近更新 更多