time包的使用

package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main()  {
	//1.获取当前时间
	t1 := time.Now()//time.Time//结构体类型
	fmt.Printf("%T\n",t1)//
	fmt.Println(t1)
	//2.获取指定时间
	//调用的只是time包下的函数Date(),返回一个结构体对象
	t2 := time.Date(2009,7,15,16,30,28,0,time.Local)//2009-07-15 16:30:28 +0800 CST
	fmt.Printf("%T\n",t2)
	fmt.Println(t2)//time.Time
	//通过返回的这个结构体对象,可以调用这个结构体所拥有的方法
	year1,month1,day1 := t2.Date()
	fmt.Println(year1,month1,day1)

	//3.time-->string之间的转换
	/*
	t1.Format("格式模版")-->string
		模版的日期必须是固定:06-1-2-3-4-5
	*/
	//2006-1--日 15:04:05
	s1 := t1.Format("2006年1月2日 15:04:05")
	fmt.Println(s1)//2021年1月22日 14:55:27
	s2 := t1.Format("2006/01/02")
	fmt.Println(s2)//2021/01/22

	//字符串类型转换为时间类型string->time
	/*
	time.Parsn("模版",str)-->time,err
	*/
	s3 := "1999年10月10号"//string
	t3,err := time.Parse("2006年01月02号",s3)
	if err != nil {
		fmt.Println("err:",err)
	}
	fmt.Println(t3)
	fmt.Printf("%T\n", t3)

	fmt.Println("@@@@@@@@@")
	fmt.Println(t1.String())
	fmt.Println(t1)
	//根据当前时间获取指定内容
	year,month,day := t1.Date()//年月日
	fmt.Println(year,month,day)

	hour,min,sec := t1.Clock()//时分秒
	fmt.Println(hour,min,sec)

	year2 := t1.Year()
	fmt.Println("年:", year2)
	fmt.Println(t1.YearDay())//返回当前时间是一年中的哪一天

	month2 := t1.Month()
	fmt.Println("月:",month2)
	fmt.Println("日:",t1.Day())
	fmt.Println("时:", t1.Hour())
	fmt.Println("分:", t1.Minute())
	fmt.Println("秒:", t1.Second())
	fmt.Println("纳秒:", t1.Nanosecond())

	fmt.Println(t1.Weekday())
	fmt.Println("$$$$$$$$$$$$$$$")
	//5时间戳:指定日期,距离1970年1月1日0时0分0秒的差值,秒 纳秒
	t4 := time.Date(1970,1,1,1,0,0,0,time.UTC)
	timeStamp1 := t4.Unix() //差的秒值
	fmt.Println(timeStamp1)
	timeStamp2 := t1.Unix()
	fmt.Println(timeStamp2)

	timeStamp3 := t4.UnixNano()
	fmt.Println(timeStamp3)
	timeStamp4 := t1.UnixNano()
	fmt.Println(timeStamp4)
	fmt.Println("***********")
	//6.时间间隔
	t5 := t1.Add(time.Minute)
	fmt.Println(t1)
	fmt.Println(t5)
	fmt.Println(t1.Add(24 * time.Hour))

	t6 := t1.AddDate(1,0,0)
	fmt.Println(t6)

	d1 := t5.Sub(t1)//求两个时间的时间差值
	fmt.Println(d1)//运行结果相差一分钟

	//7.睡眠
	time.Sleep(3 * time.Second)//让当前的程序进入睡眠状态
	fmt.Println("main.....over......")

	//睡眠1-10的随机秒数
	rand.Seed(time.Now().UnixNano())//设置种子数
	randNum := rand.Intn(10) + 1 //int
	fmt.Println(randNum)
	time.Sleep(time.Duration(randNum) * time.Second)
	fmt.Println("睡醒了。。。。")
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值