我是靠谱客的博主 强健路人,最近开发中收集的这篇文章主要介绍【Go ~ 0到1 】 第七天 获取时间戳,时间比较,时间格式转换,Sleep与定时器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.时间戳

1.1 获取当前时间戳

时间戳是指 1970年1月1日 0时0分 到现在的 毫秒值

//获取时间戳
func getTimeStamp() {
	now := time.Now()
	unix := now.Unix()
	fmt.Println(unix)
}

1.2 时间戳转换

	now := time.Now()
	// now是返回值
	unix := now.Unix()
	fmt.Println(unix)

	// 将时间戳转换为时间
	// time是包 Unix 是方法名

	t := time.Unix(unix, 0)

	fmt.Println(t)

2.时间加减,比较

2.1 获取当前时间 年 月 日

//获取当前时间
now := time.Now()
fmt.Println(now)

//获取当前年份
year := now.Year()

//获取当前月
month := now.Month()

//获取当前日
day := now.Day()

//获取当前小时
hour := now.Hour()

//获取当前分钟
minute := now.Minute()

//获取当前秒
second := now.Second()

	fmt.Printf("当前时间为 %d 年 %d 月 %d 日 %d 时 %d 分 %d 秒", year, month, day, hour, minute, second)

2.2 添加时间

	// 获取当前时间
	now := time.Now()

	// 当前时间加上 1.5小时  = 1小时 30 分钟
	duration := time.Duration(time.Hour + time.Duration(30)*time.Minute)

	add := now.Add(duration)

	fmt.Println(add)

2.3 计算时间间隔

	// 计算 2018年8月8日  到 1999年8月8日的时间间隔
	// 东八区
	location, _ := time.LoadLocation("Asia/Shanghai")
	new := time.Date(2018, 8, 8, 0, 0, 0, 0, location)
	old := time.Date(1999, 8, 8, 0, 0, 0, 0, location)

	sub := new.Sub(old)

	fmt.Println(sub)

2.4 判断时间是否在前 Before

	//获取当前时间
	now := time.Now()

	//当前时间减去30分钟  注意是 负号
	duration := time.Minute * 30

	old := now.Add(-duration)

	// 判断 old 是否在 new 之前
	flag := old.Before(now)

	fmt.Println(flag)  // 输出结果 true

2.5 判断当前时间是否在后 After

	//获取当前时间
	now := time.Now()

	//当前时间 加了一天
	add := now.Add(time.Duration(time.Hour) * 24)

	// 判断  add 是否在  now 之后
	println(add.After(now)) // true

3. Sleep 与 定时器

3.1 Sleep

	fmt.Println("休眠5秒 ", time.Now().Second())
	//程序运行到此处休眠5秒
	time.Sleep(time.Second * 5)
	fmt.Println("休眠结束 ", time.Now().Second())

3.2 定时器

	num := 0
	// 定义一个每秒执行一次的定时器
	for t := range time.Tick(time.Second) {
		//执行5秒后结束
		if num++; num >= 5 {
			return
		}
		fmt.Println(t.Second())

	}

4. 时间格式化与转换

4.1 时间格式化输出

固定数字对应格式
2006yyyy
01MM
02dd
15HH
04mm
05SS
	// 获取当前时间
	now := time.Now()

	// 将当前时间格式化
	format := now.Format("2006/01/02 15/04/05")

	fmt.Println(format)

4.2 将字符串转换为 时间

	str := "2022/07/04 22/40/50"

	t, _ := time.Parse("2006/01/02 15/04/05", str)

	fmt.Println(t) //默认时区 2022-07-04 22:40:50 +0000 UTC

	// 以指定的时区解析
	location, _ := time.LoadLocation("Asia/Shanghai")

	inLocation, _ := time.ParseInLocation("2006/01/02 15/04/05", str, location)

	fmt.Println(inLocation) //东八区 2022-07-04 22:40:50 +0800 CST

end 练习

1.统计程序运行时间,精确到纳秒

	begin := time.Now().Nanosecond()
	beginUnixMilli := time.Now().UnixMilli()
	beginSecond := time.Now().Second()
	strToTime()
	fmt.Printf("程序运行 %d 纳秒 n", time.Now().Nanosecond()-begin)
	fmt.Printf("程序运行 %d 毫秒 n", time.Now().UnixMilli()-beginUnixMilli)
	fmt.Printf("程序运行 %d 秒", time.Now().Second()-beginSecond)

最后

以上就是强健路人为你收集整理的【Go ~ 0到1 】 第七天 获取时间戳,时间比较,时间格式转换,Sleep与定时器的全部内容,希望文章能够帮你解决【Go ~ 0到1 】 第七天 获取时间戳,时间比较,时间格式转换,Sleep与定时器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部