time - 为什么 time.Parse 会错误地解析时间?

标签 time go

我正在尝试 parse一个字符串作为时间但不幸的是得到了错误的月份(一月而不是六月)

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)

}

Play

最佳答案

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

以下示例对我有用 playground

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)

}

关于time - 为什么 time.Parse 会错误地解析时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24401901/

相关文章:

go - 如何处理多个配置

sql - 需要使用 ms sql 将时间转换为数字

Java android跟踪安装应用程序的使用时间

python - 我无法在 python 中使用 time() 找出这个错误

build - Go——没有可构建的 Go 源文件

golang 错误处理类型不匹配

email - 如何在 Go 中发送带有附件的电子邮件

firebase - 查询与空字段的比较

java - 在 Java 中将以毫秒为单位的日期转换为今天、昨天、过去 7 天、过去 30 天

javascript - 如何在 Javascript 中添加时间(分钟+分钟)? (没有日期)