一 正确使用姿势
// 字符串转时间(带十分秒)
time.ParseInLocation("2006-01-02 15:04:05", "2021-01-01 00:00:00", time.Local)
time.Parse("2006-01-02 15:04:05", "2021-01-01 00:00:00")
// 字符串转时间(不带十分秒)
time.ParseInLocation("2006-01-02", "2021-01-01", time.Local)
time.Parse("2006-01-02", "2021-01-01")
// 时间转字符串(带十分秒)
time.Now().Format("2006-01-02 15:04:05")
// 时间转字符串(不带十分秒)
time.Now().Format("2006-01-02")
二 踩坑记录
1 ParseInLocation和Parse方法的区别在于取时间戳时会不一致,Parse方法默认会取UTC0时间的时间戳
2 ParseInLocation和Parse方法的layout参数需要注意下:
layout参数和value参数的格式必须严格对应(都包含或者都不包含时分秒)
value参数如果某个时间单位的数值小于10,要填0占位
3 Format方法没有严格对应的限制
下面是错误的样例
time.Parse("2006-1-2 15:04:05", "2021-01-01 00:00:00")
三 附录
在转化时间和转化字符串时候的layout参数是2006-01-02 15:04:05可以参考这篇文章