【问题标题】:Incorrect time-conversion in GoGo 中的时间转换不正确
【发布时间】:2020-02-03 23:50:05
【问题描述】:

我正在尝试将时间字符串“2020-02-01T12:30:00+01:00”(来自谷歌日历 API)转换为 Go 中的 time.Time 格式,由于某种原因它一直给我“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

}

【问题讨论】:

    标签: go time


    【解决方案1】:

    这是因为您指定的时间偏移部分错误,应该是-07:00 而不是+01:00

    到目前为止,它第二次将01 视为月份部分,并将最初正确解析的02 覆盖为01(但不是来自输入的时间偏移部分)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      • 2011-07-06
      • 2014-10-22
      • 1970-01-01
      • 2017-06-20
      • 2012-10-31
      • 2022-06-29
      相关资源
      最近更新 更多