在golang开发中会遇到要获取当天0时的时间戳的场景,网上很多资料说明的方法都是不正确的,存在着误差,建议在得到指定的时间戳之后需要,反解析处时间格式来检查一下,之所有会有差别主要是因为时区的问题。
正确的方法:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Now()
newTime := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())
fmt.Println(newTime.Unix())
}
存在误差的方法:
func main() {
timeStr := time.Now().Format("2006-01-02")
fmt.Println("timeStr:", timeStr)
t, _ := time.Parse("2006-01-02", timeStr)
timeNumber := t.Unix()
fmt.Println("timeNumber:", timeNumber)
}
上面的方法存在8个小时的误差,因为我们处于东八区。
标签: go golang