我知道我需要在GoLang中使用時間佈局(如此處所示https://golang.org/src/time/format.go),但我無法找到ISO 8601時間戳的佈局。如何在GoLang中解析ISO 8601時間戳?
如果有幫助,我會從Facebook API獲取時間戳。下面是一個例子時間戳:2016-07-25T02:22:33+0000
我知道我需要在GoLang中使用時間佈局(如此處所示https://golang.org/src/time/format.go),但我無法找到ISO 8601時間戳的佈局。如何在GoLang中解析ISO 8601時間戳?
如果有幫助,我會從Facebook API獲取時間戳。下面是一個例子時間戳:2016-07-25T02:22:33+0000
我發現這個佈局的工作: 「2006-01-02T15:04:05-0700」
RFC3339相當於ISO 8601具體而言,它具有相同的格式,RFC3339只是有更嚴格的要求(例如,它需要4位數年份的完整日期表示)。
What's the difference between ISO 8601 and RFC 3339 Date Formats?
所以,你可以使用常量time.RFC3339
爲您的佈局。
這裏的問題是RFC3339 requires區域偏移量被賦予「+00:00」(或者在UTC的情況下爲「Z」),而ISO8601允許它爲「+0000」。
從RFC3339:
[...] time-numoffset = ("+"/"-") time-hour ":" time-minute time-offset = "Z"/time-numoffset [...] full-time = partial-time time-offset date-time = full-date "T" full-time
因此而不是time.RFC3339
佈局
"2006-01-02T15:04:05Z07:00"
,你必須使用:
"2006-01-02T15:04:05Z0700"
我不知道爲什麼這個答案被擊倒投票即'time.RFC3339'不起作用,但這種佈局工作。 – witoong623
'time.RFC3339'不適用於ISO 8601.示例:https://play.golang.org/p/gIi7D5KuWa –