使用golang的time.Parse()函数将string类型转换为date类型的方法

环境

    Go 1.15

我想做的事情

当从Excel中获取日期作为字符串时,它的形式为2011/8/10。
我想使用toDate()函数将其转换为Golang的日期类型。

结论

重点是将布局设定为2006年1月2日,保持一致。
例如,如果将布局设定为2006年1月3日等其他日期,就会出现错误。

strVal := 2011/8/10
layout := "2006/1/2"
timeVal, err := time.Parse(layout, strVal)

阻滞的要点

我认为需要将2011/8/10补零处理成2011/08/10。
于是我创建了一个专门进行补零的函数,名为padNumberWithZero。

func padNumberWithZero(value string) string {
    i, _ := strconv.Atoi(value)
    return fmt.Sprintf("%02d", i)
}

然而,仍然发生了错误。

错误内容 (Mistake content)

2021/06/04 07:39:49 parsing time "2011/08/10" as "2011/09/01": cannot parse "/08/10" as "1"2011/8/10

汇总

当您想要使用golang的time.Parse()函数时,需要注意第一个参数必须与golang定义的日期和时间格式完全相同,这太令人困惑和麻烦了。

请参考 https://golang.org/src/time/format.go。

广告
将在 10 秒后关闭
bannerAds