如何使用Go语言获取当天、昨天、明天、某天0点时间戳以及格式化时间

 更新时间:2023年10月18日 16:15:37   作者:开心码农1号  
这篇文章主要给大家介绍了关于如何使用Go语言获取当天、昨天、明天、某天0点时间戳以及格式化时间的相关资料,格式化时间戳是将时间戳转换为特定的日期和时间格式,文中通过代码示例介绍的非常详细,需要的朋友可以参考下

获取当前时间 到 明天0点整的时间差的秒级时间戳的字符串形式

func GetTimeDifference() string {
	nowTime := time.Now()
	// 当天秒级时间戳
	nowTimeStamp := nowTime.Unix()

	nowTimeStr := nowTime.Format("2006-01-02")

	//使用Parse 默认获取为UTC时区 需要获取本地时区 所以使用ParseInLocation
	t2, _ := time.ParseInLocation("2006-01-02", nowTimeStr, time.Local)
	// 第二天零点时间戳
	towTimeStamp := t2.AddDate(0, 0, 1).Unix()

	return strconv.FormatInt(towTimeStamp - nowTimeStamp, 10)
}

当天0点时间戳

	addTime := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())
	timeSamp := addTime.Unix()
	fmt.Println(timeSamp) // 1649952000

当天0点格式化时间:

	t := time.Now()
	addTime := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location())
	timeStr := addTime.Format("2006-01-02")
	fmt.Println(timeStr) // 2022-04-15

昨日0点时间戳:

	ts := time.Now().AddDate(0, 0, -1)
	timeYesterday := time.Date(ts.Year(), ts.Month(), ts.Day(), 0, 0, 0, 0, ts.Location())
	timeStampYesterday := timeYesterday.Unix()
	fmt.Println(timeStampYesterday) // 1649865600

昨日0点格式化时间:

	ts := time.Now().AddDate(0, 0, -1)
	timeYesterday := time.Date(ts.Year(), ts.Month(), ts.Day(), 0, 0, 0, 0, ts.Location()).Unix()
	timeStr := time.Unix(timeYesterday, 0).Format("2006-01-02")
	fmt.Println(timeStr) // 2022-04-14

或者

	ts := time.Now().AddDate(0, 0, -1)
	timeYesterday := time.Date(ts.Year(), ts.Month(), ts.Day(), 0, 0, 0, 0, ts.Location())
	timeStr := timeYesterday.Format("2006-01-02")
	fmt.Println(timeStr) // 2022-04-14

某天的明天0点整

例子1:

过去某天,如 2022-02-28 第二天0点整:2022-03-01 00:00:00

	nowTimeStr := "2022-02-28"
	//使用Parse 默认获取为UTC时区 需要获取本地时区 所以使用ParseInLocation
	t2, _ := time.ParseInLocation("2006-01-02", nowTimeStr, time.Local)
	towTimeStamp := t2.AddDate(0, 0, 1).Unix()
	towTimeStr := time.Unix(towTimeStamp, 0).Format("2006-01-02 15:04:05")
	fmt.Println(towTimeStr) // 2022-03-01 00:00:00

例子2:

未来某天,如 2022-04-30 第二天0点整:2022-05-01

	nowTimeStr := "2022-04-30"
	//使用Parse 默认获取为UTC时区 需要获取本地时区 所以使用ParseInLocation
	t2, _ := time.ParseInLocation("2006-01-02", nowTimeStr, time.Local)
	towTimeStamp := t2.AddDate(0, 0, 1).Unix()
	towTimeStr := time.Unix(towTimeStamp, 0).Format("2006-01-02")
	fmt.Println(towTimeStr) // 2022-05-01

某天的前一天0点整

2022-04-01 前一天0点整:2022-03-31 00:00:00

	nowTimeStr := "2022-04-01"
	//使用Parse 默认获取为UTC时区 需要获取本地时区 所以使用ParseInLocation
	t2, _ := time.ParseInLocation("2006-01-02", nowTimeStr, time.Local)
	towTimeStamp := t2.AddDate(0, 0, -1).Unix()
	towTimeStr := time.Unix(towTimeStamp, 0).Format("2006-01-02 15:04:05")
	fmt.Println(towTimeStr) // 2022-03-31 00:00:00

总结 

到此这篇关于如何使用Go语言获取当天、昨天、明天、某天0点时间戳以及格式化时间的文章就介绍到这了,更多相关Go语言获取当前时间戳及格式化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Go语言HttpRouter路由使用方法详解

    Go语言HttpRouter路由使用方法详解

    这篇文章主要介绍了Go语言HttpRouter路由使用方法详解,需要的朋友可以参考下
    2022-04-04
  • Golang中Append()使用实例详解

    Golang中Append()使用实例详解

    今天在刷leetcode的时候,第113题让我遇到了一个Go语言中append函数的一个坑,所以复习下,这篇文章主要给大家介绍了关于Golang中Append()使用的相关资料,需要的朋友可以参考下
    2023-01-01
  • Go语言学习之将mp4通过rtmp推送流媒体服务的实现方法

    Go语言学习之将mp4通过rtmp推送流媒体服务的实现方法

    对音视频一直是小白,决定沉下心来,好好研究一下音视频知识,下面这篇文章主要给大家介绍了关于Go语言学习之将mp4通过rtmp推送流媒体服务的实现方法,需要的朋友可以参考下
    2022-12-12
  • 浅谈golang for 循环中使用协程的问题

    浅谈golang for 循环中使用协程的问题

    这篇文章主要介绍了浅谈golang for 循环中使用协程的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • golang协程池设计详解

    golang协程池设计详解

    这篇文章主要介绍了golang协程池设计详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Go语言实现有规律的数字版本号的排序工具

    Go语言实现有规律的数字版本号的排序工具

    这篇文章主要为大家详细介绍了如何利用Go语言实现有规律的数字版本号的排序工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2023-01-01
  • Golang 语言控制并发 Goroutine的方法

    Golang 语言控制并发 Goroutine的方法

    本文我们介绍了不同场景中分别适合哪种控制并发 goroutine 的方式,其中,channel 适合控制少量 并发 goroutine,WaitGroup 适合控制一组并发 goroutine,而 context 适合控制多级并发 goroutine,感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • 详解Golang中Channel的原理和使用技巧

    详解Golang中Channel的原理和使用技巧

    Channel管道提供了一种机制,它在两个并发执行的协程之间进行同步,并通过传递与该管道元素类型相符的值来进行通信。本文主要介绍了Channel的原理和使用技巧,需要的可以参考一下
    2022-11-11
  • Golang开发命令行之flag包的使用方法

    Golang开发命令行之flag包的使用方法

    这篇文章主要介绍Golang开发命令行及flag包的使用方法,日常命令行操作,相对应的众多命令行工具是提高生产力的必备工具,本文围绕该内容展开话题,需要的朋友可以参考一下
    2021-10-10
  • 详解Go-JWT-RESTful身份认证教程

    详解Go-JWT-RESTful身份认证教程

    这篇文章主要介绍了详解Go-JWT-RESTful身份认证教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09

最新评论