2016-07-26 187 views

回答

5

我发现这个布局的工作: “2006-01-02T15:04:05-0700”

+1

我不知道为什么这个答案被击倒投票即'time.RFC3339'不起作用,但这种布局工作。 – witoong623

+2

'time.RFC3339'不适用于ISO 8601.示例:https://play.golang.org/p/gIi7D5KuWa –

1

RFC3339相当于ISO 8601具体而言,它具有相同的格式,RFC3339只是有更严格的要求(例如,它需要4位数年份的完整日期表示)。

What's the difference between ISO 8601 and RFC 3339 Date Formats?

所以,你可以使用常量time.RFC3339为您的布局。

+3

这是不正确的。看例子:https://play.golang.org/p/gIi7D5KuWa –

+0

@TravisSmith看看这个[问题](https://github.com/golang/go/issues/9346) – nouney

+0

这个问题是关于不是了解“Z07:00”在布局中意味着什么,但这里的问题是关于冒号。 – AndreKR

1

这里的问题是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"