如何使用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实现自己的orm框架实例探索

    Golang实现自己的orm框架实例探索

    这篇文章主要为大家介绍了Golang实现自己的orm框架实例探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Go语言执行系统命令行命令的方法

    Go语言执行系统命令行命令的方法

    这篇文章主要介绍了Go语言执行系统命令行命令的方法,实例分析了Go语言操作系统命令行的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • 详解Go 并发

    详解Go 并发

    这篇文章主要介绍了Go 并发的相关资料,帮助大家更好的理解和学习go语言,感兴趣的朋友可以了解下
    2020-09-09
  • Go Build编译打包文件的完整步骤

    Go Build编译打包文件的完整步骤

    go build命令是用于编译Go语言程序并生成可执行文件,它可以将Go源代码编译成机器代码,并将其打包成可执行文件,方便在不同的操作系统上运行,这篇文章主要给大家介绍了关于Go Build编译打包文件的完整步骤,需要的朋友可以参考下
    2024-02-02
  • go语言 swagger 查询 json 字段注释的示例代码

    go语言 swagger 查询 json 字段注释的示例代码

    在Go语言中,使用Swagger通过swag工具和gin-gonic框架生成API文档,涉及引入依赖、定义模型、添加注释等步骤,示例中展示了如何为接受查询参数的API端点添加注释,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • sublime text3解决Gosublime无法自动补全代码的问题

    sublime text3解决Gosublime无法自动补全代码的问题

    本文主要介绍了sublime text3解决Gosublime无法自动补全代码的问题,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 基于Go语言实现类似tree命令的小程序

    基于Go语言实现类似tree命令的小程序

    tree 命令是一个小型的跨平台命令行程序,用于递归地以树状格式列出或显示目录的内容。本文将通过Go语言实现类似tree命令的小程序,需要的可以参考一下
    2022-10-10
  • golang内置函数len的小技巧

    golang内置函数len的小技巧

    len是很常用的内置函数,可以测量字符串、slice、array、channel以及map的长度/元素个数。本文就来介绍一下其他小技巧,感兴趣的可以了解一下
    2021-07-07
  • Golang并发控制的三种实现方法

    Golang并发控制的三种实现方法

    在Golang中,有多种方式可以进行并发控制,本文详细的介绍了三种实现方法,Channel优点是实现简单,清晰易懂,WaitGroup优点是子协程个数动态可调整,Context 优点是对子协程派生出来的孙子协程的控制,缺点是相对而言的,要结合实例应用场景进行选择
    2023-08-08
  • Go/C语言LeetCode题解997找到小镇法官

    Go/C语言LeetCode题解997找到小镇法官

    这篇文章主要为大家介绍了Go语言LeetCode题解997找到小镇的法官示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12

最新评论