golang中time比较的时区问题
问题 最近发现程序中有一个时间代码比较老是不对 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个小时. 解决 使用time.ParseInLocation即可解决问题...阅读全文