如何使用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语言获取当前时间戳及格式化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Golang实现超时机制读取文件的方法示例

    Golang实现超时机制读取文件的方法示例

    读写文件是Go程序的基本任务,包括使用程序查看文件内容、创建或修改文件,Go提供了os,ioutil,io以及bufio包实现文件操作,本文介绍如果在读文件过程中增加超时机制,避免文件太大一直占用资源,需要的朋友可以参考下
    2025-01-01
  • Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

    Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

    本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定的参考价值,感兴趣的可以了解一下
    2025-05-05
  • go-micro微服务JWT跨域认证问题

    go-micro微服务JWT跨域认证问题

    JWT 以 JSON 对象的形式安全传递信息。因为存在数字签名,因此所传递的信息是安全的,这篇文章主要介绍了go-micro微服务JWT跨域认证,需要的朋友可以参考下
    2023-01-01
  • Go语言struct要使用 tags的原因解析

    Go语言struct要使用 tags的原因解析

    这篇文章主要介绍了为什么 Go 语言 struct 要使用 tags,在本文中,我们将探讨为什么 Go 语言中需要使用 struct tags,以及 struct tags 的使用场景和优势,需要的朋友可以参考下
    2023-03-03
  • 详解如何使用Golang操作MongoDB数据库

    详解如何使用Golang操作MongoDB数据库

    在现代开发中,数据存储是一个至关重要的环节,MongoDB作为一种NoSQL数据库,提供了强大的功能和灵活的数据模型,与Golang的高性能和并发性能非常契合,本文将探讨Golang与MongoDB的完美组合,介绍如何使用Golang操作MongoDB数据库,需要的朋友可以参考下
    2023-11-11
  • Golang基础教程之字符串string实例详解

    Golang基础教程之字符串string实例详解

    这篇文章主要给大家介绍了关于Golang基础教程之字符串string的相关资料,需要的朋友可以参考下
    2022-07-07
  • Go tablewriter库提升命令行输出专业度实例详解

    Go tablewriter库提升命令行输出专业度实例详解

    命令行工具大家都用过,如果是运维人员可能会编写命令行工具来完成各种任务,命令行输出的美观和易读性往往容易被忽视,很烂的输出会让人感觉不专业,本文将介绍Go语言中牛逼的实战工具tablewriter库,使你在命令行输出中展现出专业的一面
    2023-11-11
  • Go并发调用的超时处理的方法

    Go并发调用的超时处理的方法

    这篇文章主要介绍了Go并发调用的超时处理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • golang channel管道使用示例解析

    golang channel管道使用示例解析

    这篇文章主要介绍了golang channel管道使用示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • 深入了解Golang官方container/list原理

    深入了解Golang官方container/list原理

    在 Golang 的标准库 container 中,包含了几种常见的数据结构的实现,其实是非常好的学习材料,本文主要为大家介绍了container/list的原理与使用,感兴趣的可以了解一下
    2023-08-08

最新评论