Go_时间日期函数

时间日期:

func main() {
	// 获取当前时间
	now := time.Now()
	fmt.Println("当前时间:", now)

	// 获取年月日时分秒
	fmt.Println("年:", now.Year())
	fmt.Println("月:", int(now.Month())) // 不转int是英文的月份
	fmt.Println("日:", now.Day())
	fmt.Println("时:", now.Hour())
	fmt.Println("分:", now.Minute())
	fmt.Println("秒:", now.Second())

	fmt.Println("星期几:", int(now.Weekday())) // 不转int是英文的星期数
	fmt.Println("一年中的第几天:", now.YearDay())
	fmt.Println("时区:", now.Location())
	fmt.Println("返回当天的第几小时:", now.Hour())
	fmt.Println("返回当天的第几分钟:", now.Minute())
	fmt.Println("返回当天的第多少秒:", now.Second())
	fmt.Println("返回当天的第多少纳秒:", now.Nanosecond())

	// Sleep:睡眠
	time.Sleep(time.Millisecond * 2000)

	// 时间戳,时间戳是1970/1/1 0:00 到现在的秒数
	fmt.Println("时间戳(秒):", now.Unix())
	fmt.Println("时间戳(毫秒):", now.UnixMilli())
	fmt.Println("时间戳(微秒):", now.UnixMicro())
	fmt.Println("时间戳(纳秒):", now.UnixNano())
}

输出:

当前时间: 2023-02-12 22:50:10.536541 +0800 CST m=+0.000168709
年: 2023
月: 2
日: 12
时: 22
分: 50
秒: 10
星期几: 0
一年中的第几天: 43
时区: Local
返回当天的第几小时: 22
返回当天的第几分钟: 50
返回当天的第多少秒: 10
返回当天的第多少纳秒: 536541000
时间戳(秒): 1676213410
时间戳(毫秒): 1676213410536
时间戳(微秒): 1676213410536541
时间戳(纳秒): 1676213410536541000

格式化日期:

2006-01-02 15:04:05是日期格式,格式化后便于查看

func main() {
	now := time.Now()
	// 格式化日期时间
	fmt.Printf("当前时间: %d-%d-%d %d:%d:%d\n", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())

	// 也可以赋值给变量,再处理
	date := fmt.Sprintf("当前时间: %d-%d-%d %d:%d:%d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
	fmt.Println(date)

	// 使用Format格式化
	fmt.Println("年月日时分秒:", now.Format("2006/01/02 15:04:05")) // 当前时间
	fmt.Println("年月日时分:", now.Format("2006/01/02 15:04"))
	fmt.Println("年月日时:", now.Format("2006/01/02 15"))
	fmt.Println("年月日:", now.Format("2006-01-02"))
	fmt.Println("时分秒", now.Format("15:03:04"))
	fmt.Println("年", now.Format("2006"))
	fmt.Println("月", now.Format("01"))
	fmt.Println("日", now.Format("02"))
	fmt.Println("时", now.Format("15"))
	fmt.Println("分", now.Format("04"))
	fmt.Println("秒", now.Format("00")) // 这个00就不属于"2006/01/02 15:04:05"字符串中的了,就不会解析,按照00输出
}

输出:

当前时间: 2022-12-19 11:38:11
当前时间: 2022-12-19 11:38:11
年月日时分秒: 2022/12/19 11:38:11
年月日时分: 2022/12/19 11:38
年月日时: 2022/12/19 11
年月日: 2022-12-19
时分秒 11:11:3820221219111100

时间戳格式转换:

func main() {
	now := time.Now()
	nowDate := "2006-01-02 15:04:05"
	t := time.Unix(now.Unix(), 0) // sec:秒	nsec:纳秒
	fmt.Println(t.Format(nowDate))
}

Sub方法:

func main() {
	startTime := time.Now()
	sum := 0
	for i := 0; i < 10000000000; i++ {
		sum++
	}
	// Sub方法让两个时间点相减,生成一个Duration类型值(代表时间段)
	elapsedTime := time.Now().Sub(startTime)
	//Since返回从t到现在经过的时间,等价于time.Now().Sub(t)。
	//elapsedTime := time.Since(start)
	fmt.Println("耗时:", elapsedTime)	// 3.278499042s
}

你可能感兴趣的:(Golang,golang,时间戳,时间,日期)