我正在尝试将时间字符串“2020-02-01T12:30:00 + 01:00”(来自Google日历API)转换为time.Go中的时间格式,由于某种原因,它一直给我“2020-01- 01 12:30:00 +0000 UTC”作为输出(这是一月的第一天,而不是二月的第一天)。知道我在做什么错吗?
提前致谢!
package main
import (
"fmt"
"time"
"log"
)
func main() {
input := "2020-02-01T12:30:00+01:00"
output, err := StrToTime(input)
if err != nil{
log.Fatal(err)
}
fmt.Println(output)
}
func StrToTime(strDateTime string) (time.Time, error) {
layout := "2006-01-02T15:04:05+01:00"
t, err := time.Parse(layout, strDateTime)
if err != nil {
return time.Time{}, fmt.Errorf("could not parse datetime: %v", err)
}
return t, nil
}
最佳答案
发生这种情况是因为您指定的时间偏移部分错误,应该是-07:00
而不是+01:00
。
到目前为止,它第二次将01
视为月份部分,并将最初正确解析的02
覆盖为01
(但不是从输入的时间偏移部分开始)。
关于go - Go中不正确的时间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60048724/