一尘不染

time.parse:为什么golang会错误地解析时间?

go

我正在尝试解析一个字符串,但是很不幸,去的月份不正确(一月而不是六月)

package main

import "fmt"
import "time"

func main() {

    t := "2014-06-23T20:29:39.688+01:00"
    tc, _ := time.Parse("2006-01-02T15:04:05.000+01:00", t)

    fmt.Printf("t was %v and tc was %v", t, tc)

}


阅读 282

收藏
2020-07-02

共1个答案

一尘不染

问题是您的时区偏移在布局中定义不正确:参考偏移为-0700。您将定义为+01:00,因此将01被解释为月份,并删除先前定义的月份。并且由于您的工作偏移01也将被分析为一月。

以下示例适用于我的游乐场

package main

import "fmt"
import "time"

func main() {

    t := "2014-06-23T20:29:39.688+01:00"
    tc, _ := time.Parse("2006-01-02T15:04:05.000-07:00", t)

    fmt.Printf("t was %v and tc was %v", t, tc)

}
2020-07-02