前言
解决Gorm向数据库中,向数据表的DATATIME
类型字段,从Go语言中写入time.Time
类型的当前时间时,秒钟不正确的问题
原因
- Go语言的
time.Time
类型保存纳秒值,当纳秒值超过0.5秒时,就会四舍五入进1位,导致实际存入数据库中的秒钟值比Go语言中的time.Time
类型通过Second()
方法获取的秒钟值多1秒
解决问题
1 2 3 4 5 6 7 8
| var nowTime time.Time = time.Now()
var nowTimeNanosecond int = nowTime.Nanosecond() var nowTimeNanosecondWithUnitString string = fmt.Sprintf("-%dns", nowTimeNanosecond) var nowTimeNanosecondWithUnitTime, _ = time.ParseDuration(nowTimeNanosecondWithUnitString)
nowTime = nowTime.Add(nowTimeNanosecondWithUnitTime)
|
完成