在Go中解析RFC-3339 / ISO-8601格式的日期和时间
大家好!我刚开始学习Go,遇到了解析日期时间字符串的问题。我需要处理来自JSON API的数据,其中日期以"2023-12-25T15:30:00Z"或"2023-12-25T18:30:00+03:00"格式出现(这似乎是RFC-3339或ISO-8601)。
我知道Go中有`time`包和`time.Parse`函数,但我不明白应该指定什么格式模板。我尝试过类似`"2006-01-02T15:04:05Z07:00"`的东西,但遇到了错误。这是我的代码:
```go
package main
import (
"fmt"
"time"
)
func main() {
dateStr := "2023-12-25T15:30:00Z"
layout := "2006-01-02T15:04:05Z07:00"
parsedTime, err := time.Parse(layout, dateStr)
if err != nil {
fmt.Println("解析错误:", err)
return
}
fmt.Println(parsedTime)
}
```
报错:`parsing time "2023-12-25T15:30:00Z" as "2006-01-02T15:04:05Z07:00": cannot parse "Z" as "Z07:00"`。
我尝试了很多模板变体,但都不起作用。请告诉我如何正确解析这样的日期。