如何在golang中转换ISO 8601时间?

时间:2016-02-18 10:36:10

标签: go

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

4 个答案:

答案 0 :(得分:82)

package main

import (
    "time"
    "fmt"
)

func main(){
    fmt.Println(time.Now().Format(time.RFC3339))
}

golang Time.Format

答案 1 :(得分:29)

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println(time.Now().UTC().Format("2006-01-02T15:04:05-0700"))
}

答案 2 :(得分:0)

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

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

披露:我写了那个库。

答案 3 :(得分:0)

我有以下规格:

YYYY-MM-DDThh:mm:ss.sssZ

最后一个Z明确显示在示例中。

这是我的处理方式:  *首先,我找到了最接近目标的time.RFCxxx  *我复制了它的值  *我一直在弄弄它直到找到预期的结果

2006-01-02T15:04:05.999Z