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

问题描述 投票:38回答:3

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

go
3个回答
86
投票
package main

import (
    "time"
    "fmt"
)

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

golang Time.Format


31
投票
package main

import (
    "fmt"
    "time"
)

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

1
投票

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

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

披露:我写了那个图书馆。


0
投票

我有以下规格:

YYYY-MM-DDThh:mm:ss.sssZ

最后的Z明确地出现在例子中。

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

是的

2006-01-02T15:04:05.999Z
© www.soinside.com 2019 - 2024. All rights reserved.