Categories: GO业界编程

Golang中获取当天0时的时间戳

在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个小时的误差,因为我们处于东八区。

5.0
02
chrome插件推荐:SimilarTech Prospecting
shell大段字符串处理之Here Document
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

PHP Composer如何安装?

PHP Composer是PH…

1天 ago

MacOS上Missing xcrun的问题

在使用MacOS进行编程或开发…

1天 ago

CodeGeeX是一款基于大模型的全能AI编程助手

CodeGeeX是一个面向开发…

1天 ago

MySQL覆盖索引详解

在数据库性能优化中,索引是一个…

1天 ago

后端程序员必备:SQL优化的20条建议

SQL优化查询对于后端程序员来…

1天 ago