如何以以下格式解析日期:

时间:2016-08-31 23:43:52

标签: date parsing go

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

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)
    }
}

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

1 个答案:

答案 0 :(得分:3)

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