从文档中我还不清楚如何以这种有些奇怪的格式解析日期。似乎不可能。

2016-07-08T08:34:24+00:00

以下不起作用(go play link)
package main

import (
    "fmt"
    "time"
)

func main() {
    date := "2016-07-08T08:34:24+00:00"
    d, err := time.Parse("2006-01-02T15:04:05+07:00", date)
    if err == nil {
        fmt.Println(d)
    } else {
        fmt.Println(err)
    }
}

显然,正则表达式可以先检查该格式,然后将+转换为-,但这意味着标准库无法解析此日期。

最佳答案

Go的参考布局使用-7小时作为时区偏移,但是您使用了+7小时:

package main

import (
    "fmt"
    "time"
)

func main() {
    date := "2016-07-08T08:34:24+00:00"
    d, err := time.Parse("2006-01-02T15:04:05-07:00", date)
    if err == nil {
        fmt.Println(d)
    } else {
        fmt.Println(err)
    }
}

https://play.golang.org/p/FNzx57R2jy

07-24 09:45
查看更多