Go语言进阶 --- Time包的使用

Time包的使用

常用方法介绍

获取当前时间

  • time.Now() 方法返回值是Time类型的值,直接输出返回值,得到的结果是默认格式下的时间戳

  • 代码展示

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

获取指定的时间

  • time.Data()方法的参数包含很多值,包括年月日,时分秒,毫秒微秒,时区

  • 返回值是一个指定时间的时间戳,一般用于创建时间戳,用于参与判断等

  • 代码展示

    	AppointTime := time.Date(2020, 11, 25, 0, 0, 0, 0, time.Local)//time.Local
    	fmt.Println(AppointTime)
    

指定时间输出格式/解析时间字符为时间戳

  • 1.使用Time类型中的Format("格式模版")方法转化
    2.模版的日期必须是固定的: 06-1-2-3-4-5(年 月 日 时 分 秒)
    
  • 指定时间的输出格式,目的是方便日志记录以及自己查看出现问题的地方

  • 主要函数

    • Time类型的Format()方法
    • 方法参数: 时间格式模版
    • 模版的日期必须是固定的: 06-1-2-3-4-5(年 月 日 时 分 秒)
    • 意思是说,年的末尾要是6,月是1,日是2…以此类推
    • 例如格式:
      • 2006年01月02日 03时04分05秒
      • 2006-01-02 ,03-04-05
      • 2006年01月02日 03:04:05
  • 代码展示

    	time1 := time.Now()
    	FString := time1.Format("2006年01月02日 03时04分05秒")
    	fmt.Println(FString)
    
  • //解析时间字符串为时间戳
    1.使用time包中的Parse("格式模版")
    2.格式模版必须和需要解析字符串的模版一致
    
  • 将获得的时间字符串转换成时间戳,方便进行运算,比较等…

  • 主要函数

    • Time类型的Parse()方法
    • 方法参数: 1.模版格式 2.需要转化的时间字符串
    • 格式模版必须和需要解析字符串的模版一致
  • 代码展示

    	time2 := "2023年10月09日 01时10分12秒"
    	PTime, err := time.Parse("2006年01月02日 03时04分05秒", time2)
    	if err != nil {
    		fmt.Println(err)
    	}
    	fmt.Println(PTime)
    

单独获取时间

  • 直接代码展示
//单独获取时间
	time3 := time.Now()
	//获取年
	year := time3.Year()
	//获取月
	month := time3.Month()
	//获取日
	day := time3.Day()
	//获取时
	hour := time3.Hour()
	//获取分
	minute := time3.Minute()
	//获取秒
	second := time3.Second()
	//获取微秒
	nanosecond := time3.Nanosecond()
	//获取时区
	location := time3.Location()
	fmt.Println(year, month, day, hour, minute, second, nanosecond, location)

	//获取年月日
	time3.Date()
	//获取时分秒
	time3.Clock()
	//获取星期
	time3.Weekday()
	//获取今年过去的时间
	time3.YearDay()

添加时间

  • 在获取的时间戳中添加或减少事时间

  • 方法

    • Time类中的Add()方法,参数是一个数值,默认是距离时间戳多少纳秒
    • Time类中的AddDate()方法,参数是年月日
    • 注意: 添加时间(正数表示往后添加,负数表示往前添加)
  • 代码展示

    fmt.Println("添加之后的时间", timeData.Add(1*time.Second)) //默认单位是纳秒,也可以自己添加
    	fmt.Println("添加后的时间", timeData.AddDate(1, 2, 3))
    

计算时间差

  • 方法:

    • Time类中的Sub()方法
    • 参数是另外一个Time类型的值
    • 返回值是 时间差 ,单位是纳秒
  • 代码展示

    fmt.Println("时间的间隔: ", timeData.Sub(time.Now()))
    

利用时间戳制作随机数的种子

  • 使用不断变化的时间戳,制作随机数的种子,使得获取到的随机数更加随机

  • 代码展示

  • //随机数值
    	rand.NewSource(time.Now().Unix())
    	fmt.Println("随机数值:", rand.Intn(10)-1)
    

你可能感兴趣的:(Go进阶,golang,java,服务器)