go ---各种时间转化实践

go的各种时间转化实践

 
代码:

package main

import (
	"fmt"
	"time"
)

var DateFmtYYYYMMDD       = "2006-01-02"
var DateFmtYYYYMMDDHHmmss = "2006-01-02 15:04:05"

func main(){

	//设置全局时区为utc +8
	utcZone := time.FixedZone("UTC", 0)
	time.Local = utcZone

	//当前时间转 "2022-04-30"
	fmt.Println("当前时间转 2022-04-30")
	fmt.Println(time.Now().Format(DateFmtYYYYMMDD))

	//当前时间转 "2022-04-30 12:00:23"
	fmt.Println("当前时间转 2022-04-30 12:00:23")
	fmt.Println(time.Now().Format(DateFmtYYYYMMDDHHmmss))

	// "2022-04-30" 转 "2022-04-30 00:00:00 +0000 UTC"
	fmt.Println("2022-04-30 转 2022-04-30 00:00:00 +0000 UTC")
	time1 := "2022-04-30"
	time1Parse, _ := time.Parse(DateFmtYYYYMMDD, time1)
	fmt.Println(time1Parse,time1Parse.String())

	// "2022-04-30" 转 "2022-04-30 00:00:00 +0000 UTC"
	fmt.Println("2022-04-30 转 2022-04-30 00:00:00 +0000 UTC")
	time2 := "2022-04-30"
	time2Parse, _ := time.Parse(DateFmtYYYYMMDD, time2)
	fmt.Println(time2Parse,time2Parse.String())

	// "2022-04-30" 转 "2022-04-30 00:00:00 "
	fmt.Println("2022-04-30 转 2022-04-30 00:00:00")
	time3 := "2022-04-30"
	time3Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, fmt.Sprintf("%s 00:00:00", time3))
	time3Str := time3Parse.Format(DateFmtYYYYMMDDHHmmss)
	fmt.Println(time3Str)


	// 2022-04-30 02:00:00 与 2022-05-01 01:00:00 相差的小时数
	fmt.Println("2022-04-30 02:00:00 与 2022-05-01 01:00:00 相差的小时数 [23]")
	time4 := "2022-04-30 02:00:00"
	time5 := "2022-05-01 01:00:00"
	time4Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time4)
	time5Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time5)
	hour1Interval := time5Parse.Sub(time4Parse).Hours()
	fmt.Println(hour1Interval)

	// 2022-05-01 01:00:00 2022-04-30 02:00:00  相差的小时数(为负数)
	fmt.Println("2022-05-01 01:00:00 2022-04-30 02:00:00  相差的小时数(为负数)[-23]")
	time6 := "2022-04-30 02:00:00"
	time7 := "2022-05-01 01:00:00"
	time6Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time6)
	time7Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time7)
	hour2Interval := time6Parse.Sub(time7Parse).Hours()
	fmt.Println(hour2Interval)

	// 2022-04-30 02:00:00 与 2022-05-01 01:30:30 相差的时分秒
	fmt.Println("2022-04-30 02:00:00 与 2022-05-01 01:30:30 相差的时分秒 [23h30m30s]")
	time8 := "2022-04-30 02:00:00"
	time9 := "2022-05-01 01:30:30"
	time8Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time8)
	time9Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time9)
	hour3Interval := time9Parse.Sub(time8Parse).String()
	fmt.Println(hour3Interval)


	// 2022-04-30 的后一天
	fmt.Println("2022-04-30 的后一天")
	time10 := "2022-04-30"
	time10Parse, _ := time.Parse(DateFmtYYYYMMDD, time10)
	nextDay := time10Parse.AddDate(0,0,1)
	fmt.Println(nextDay)
	fmt.Println("2022-04-30 的前一天")
	beforeDay := time10Parse.AddDate(0,0,-1)
	fmt.Println(beforeDay)

	
	fmt.Println("2022-04-30 12:30:00 的后一天")
	time11 := "2022-04-30 12:30:00"
	time11Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time11)
	nextDay2 := time11Parse.AddDate(0,0,1)
	fmt.Println(nextDay2)
	fmt.Println("2022-04-30 12:30:00 的前一天")
	beforeDay2 := time11Parse.AddDate(0,0,-1)
	fmt.Println(beforeDay2)

}

 
 
如有不对,烦请指出,感谢~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值