这个第一个参数 layout,不能随便写个时间

如果随便填个时间,例如:2019-05-16 23:23:45

可能会报err,
使用:”2006-01-02 15:04:05″ 这个就不会报错。

  • 解决方案:

string 转 time:

time, err := time.ParseInLocation("2006-01-02 15:04:05", req.UploadTime, time.Local)

有空我看下 time 这里的源码,分析一下 为什么会解析失败。先记录下


问题解了,因为这天是 Go 的生日。。。匹配策略也是根据这个日期匹配的,也符合预期。
不然怎么知道每个数字对应的是 月 还是 日 还是别的呢?
通过固定的日期,匹配出所需要的格式。其实也符合设计的预期。算是个小彩蛋吧。

  • Time、String 互转方法:
func Time2Str(t *time.Time) string {
    return t.Format("2006-01-02 15:04:05")
}

func Str2Time(timeStr string) time.Time {
    t, _ := time.ParseInLocation("2006-01-02 15:04:05", timeStr, time.Local)
    return t
}

文章来源于互联网,如有雷同请联系站长删除:Go time.Parse 报错【解决方案】

发表评论