最近發現程序中有一個時間代碼比較總是不對code
at, err := time.Parse("2006-01-02 15:04:05", authTime) if err != nil { return } nt := time.Now() fmt.Println(nt, at) if nt.After(at) { return }
打印nt和at後發現at明明在nt以前,可是nt.After返回了false.文檔
fmt.Println(nt.Unix(), at.Unix())
打印nt和at的Unix時間戳後發現,at時間增長了8個小時.
查看time.Parse文檔後發現,這裏解析的是UTC時間,與中國時間相差8個小時.io
使用time.ParseInLocation便可解決問題程序
time.ParseInLocation("2006-01-02 15:04:05", authTime, time.Local)