您的位置 首页 golang

go语言基础包time的知识点总结

time包中常用的数据类型

  1. Location 时区类型
  2. Time 时间类型
  3. Duration 时段类型
  4. Timer 定时器类型
  5. Ticker 循环定时类型
  6. Weekday Month 类型

time包中time类型下常用的方法

  • time.Now() :返回当前时间
  • time.Now().Format() :格式化时间, 在go中使用2006-01-02 15:04:05来表示格式字符串
  • time.Parse() :给定时间字符串,返回指定格式的time类型
  • time.ParseInLocation() :给定时间字符串和时区,返回指定格式的time类型
  • time.Now().Unix() :返回当前时间戳
  • time.Unix() :给定时间戳返回默认的时间格式
  • time.Now().UTC() 返回 UTC 时区的时间,相差8小时
  • time.Now().In() :可以设置时区
  • time.Now().Year() :获取年
  • time.Now().Add() :添加时间
  • time.Now().AddDate() :可以添加年月日的时间

package main

func main() {

//获取当前时间

//t1 :=time.Now()

////给定字符串转成time类型,如果字符串不解析失败,会返回err

//t :=”2021-11-06 13:26:56″

//t1,err :=time.Parse(“2006-01-02 15:04:05”,t)

////给定字符串转成time类型,可以指定时区,如果字符串不解析失败,会返回err

//loc,_ :=time.LoadLocation(“GMT”)//注意这里的名字是需要大写的

//t1,err =time.ParseInLocation(“2006-01-02 15:04:05”,t,loc)

//

//fmt.Println(err)

//fmt.Println(t1)

//获取当前时间戳

//unixtime:=time.Now().Unix()

//fmt.Println(unixtime)

////时间戳转成时间格式

//unix :=time.Unix(unixtime,0)

//fmt.Println(unix)

//使用本地时区,获取当前时间

//t :=time.Now().Local()

//使用UTC时区,获取当前时间,相差8小时

//t =time.Now().UTC()

//指定时区

//loc,_:=time.LoadLocation(“UTC”)

// t =t.In(loc)

//fmt.Println(t)

//获取年月日,时分秒

//t :=time.Now()

//y :=t.Year()

//m :=t.Month()

//d :=t.Day()

//h :=t.Hour()

//M :=t.Minute()

//s := t.Second()

//两个时间比较

//t1 :=time.Now()

//t2,_ :=time.Parse(“2006-01-02 15:04:05″,”2022-12-01 12:12:12”)

////t1时间是否在t2之前,如果是返回真,否则为false

//fmt.Println(t1.Before(t2))

////t1时间是否在t2之后,如果是返回真,否则为false

//fmt.Println(t1.After(t2))

////t1时间是否与t2相等,如果是返回真,否则为false

//fmt.Println(t1.Equal(t2))

t :=time.Now()

fmt.Println(t)

//当前时间加5分钟

//t =t.Add(time.Minute*5)

//当前时间加具体时间日期

t =t.AddDate(2,0,0)

fmt.Println(t)

fmt.Println(t.Format(“2006-1-2”))

}

time包中Duration类型下常用的方法

  • time.ParseDuration 解析一个时间段字符串 常用格式:h,m,s,ms,us,ns
  • time.Since() :返回从时间t到现在的时间间隔

//解析时间段字符串

//dur ,err :=time.ParseDuration(“1.5h”)

//fmt.Println(dur,err)

//t :=time.Now()

//time.Sleep(time.Second)

////从t时间到现在的时间间隔

//dur :=time.Since(t)

////将时间段转化成小时

//fmt.Println(dur.Hours())

////将时间段转化成分钟

//fmt.Println(dur.Minutes())

////将时间段转化成秒数

//fmt.Println(dur.Seconds())

time包中Timer类型下常用的方法

这个timer定时器,在go协程通信时,使用的会比较多,常用作超时处理

  • NewTimer() :创建一个 Timer 定时器
  • AfterFunc() :创建一个 Timer 匿名定时器
  • Reset() :定时器重置
  • Stop() :停止定时器

package main

import (

“fmt”

“time”

)

func main() {

//创建一个5秒的定时器

//ter :=time.NewTimer(time.Second*5)

//c :=<-ter.C//这里会阻塞

//

//fmt.Println(c)

//创建一个3秒的定时器

//ter2 :=time.After(time.Second*3)

//c2 :=<-ter2

//fmt.Println(c2)

//time3 :=time.NewTimer(time.Second*3)

//go func() {

//<-time3.C

//fmt.Println(“定时器执行了”)

//}()

//

//time.Sleep(time.Second*5)

//stop :=time3.Stop()

//if stop{

//fmt.Println(“time3 停止了”)

//}

}

time包中Ticker类型下常用的方法

//Ticker类型的定时是同期循环的定时器

package main

import (

“fmt”

“time”

)

func main() {

//ticker定时器,每3秒打印一次

ticker :=time.NewTicker(time.Second*3)

i :=0

for{

<-ticker.C

i++

fmt.Println(“我打印了”,i)

if i==10{

ticker.Stop()

break

}

}

}

喜欢的点个赞吧!!!!!

文章来源:智云一二三科技

文章标题:go语言基础包time的知识点总结

文章地址:https://www.zhihuclub.com/86217.shtml

关于作者: 智云科技

热门文章

网站地图