我尝试在Go中解析日期字符串“2014-09-12T11:45:26.371Z”。此时间格式定义为:
rfc - 3339日期-时间
iso - 8601日期-时间
Code
layout := "2014-09-12T11:45:26.371Z"
str := "2014-11-12T11:45:26.371Z"
t, err := time.Parse(layout , str)
我得到了这个错误:
解析时间“2014-11-12T11:47:39.489Z”:月份超出范围
我如何解析这个日期字符串?
对于那些遇到这种情况的人,利用好时间。RFC3339相对于字符串常量“2006-01-02T15:04:05.000Z”。原因如下:
regDate := "2007-10-09T22:50:01.23Z"
layout1 := "2006-01-02T15:04:05.000Z"
t1, err := time.Parse(layout1, regDate)
if err != nil {
fmt.Println("Static format doesn't work")
} else {
fmt.Println(t1)
}
layout2 := time.RFC3339
t2, err := time.Parse(layout2, regDate)
if err != nil {
fmt.Println("RFC format doesn't work") // You shouldn't see this at all
} else {
fmt.Println(t2)
}
这将产生以下结果:
Static format doesn't work
2007-10-09 22:50:01.23 +0000 UTC
这是游乐场通
这是一个相当晚的聚会,并没有真正说任何没有以这种或那种形式说过的东西,主要是通过上面的链接,但我想给那些注意力持续时间较短的人一个TL;DR概述:
go格式字符串的日期和时间非常重要。围棋就是这样区分哪个领域是哪个领域的。一般从左到右为1-9,如下:
January / Jan / January / Jan / 01 / _1(等等)表示月份
02 / _2代表星期几
15 / 03 / _3 / PM / P / PM / P表示小时和子午线(下午3点)
04 / _4代表分钟
05 / _5表示秒
2006 / 06为年度
-0700 / 07:00 / MST为时区
.999999999 / .000000000等是部分秒(我认为区别是如果后面的零被删除)
星期一/星期一是一周中的一天(实际上是01-02-2006),
所以,不要写“01-05-15”作为你的日期格式,除非你想要“月-秒-小时”
(…同样,这也是对上述内容的总结。)
对于那些遇到这种情况的人,利用好时间。RFC3339相对于字符串常量“2006-01-02T15:04:05.000Z”。原因如下:
regDate := "2007-10-09T22:50:01.23Z"
layout1 := "2006-01-02T15:04:05.000Z"
t1, err := time.Parse(layout1, regDate)
if err != nil {
fmt.Println("Static format doesn't work")
} else {
fmt.Println(t1)
}
layout2 := time.RFC3339
t2, err := time.Parse(layout2, regDate)
if err != nil {
fmt.Println("RFC format doesn't work") // You shouldn't see this at all
} else {
fmt.Println(t2)
}
这将产生以下结果:
Static format doesn't work
2007-10-09 22:50:01.23 +0000 UTC
这是游乐场通
使用的布局确实是“2006-01-02T15:04:05.000Z”在RickyA的回答中描述的。
它不是“第一次提交围棋的时间”,而是一种记住所述布局的助记方法。
看到包裹/时间:
布局中使用的参考时间为:
Mon Jan 2 15:04:05 MST 2006
即Unix时间1136239445。
由于MST为GMT-0700,所以参考时间可以认为为
01/02 03:04:05PM '06 -0700
(1、2、3、4、5、6、7,只要你记得1代表月,2代表日,这对像我这样的欧洲人来说并不容易,因为我习惯了日-月的日期格式)
如“时间”所示。解析:为什么golang解析时间不正确?”,这种布局(使用1、2、3、4、5、6、7)必须完全遵守。