项目中遇到了这样一个问题,数据库保存的是UTC时间,但是传参是本地时间,所以比较的时候需要将本地时间转成UTC时间。
package main
import (
"fmt"
"time"
)
func main() {
var date = "2019-08-13 00:00:00"
loc1, _ := time.LoadLocation("Local")
// 将时间字符串转成本地时间
result, err := time.ParseInLocation("2006-01-02 15:04:05", date, loc1)
if err != nil {
fmt.Println("err", err)
}
loc2, _ := time.LoadLocation("") // 相当于LoadLocation("UTC")
// 转成UTC
fmt.Println("----------", result.In(loc2))
day, _ := time.ParseDuration("24h")
// 时间加24h
endTime := result.In(loc2).Add(day)
fmt.Println("-------", endTime)
}
还碰到了一个时间转换后错误的问题,后来查了一下是Parse和Format的时候layout必须使用官方给出的那个模板,
Mon Jan 2 15:04:05 -0700 MST 2006
//
2006-01-02 15:04:05