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)

}

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

猜你喜欢

转载自blog.csdn.net/my_miuye/article/details/124848608