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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开心码农1号

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值