栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

第004节:time包

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第004节:time包

在标准库中,还为我们提供了time包,里面都是关于日期时间的操作,都比较简单。

1、获取时间对象

获取当前时间:

func Now() Time// Now returns the current local time.

获取指定时间:

func Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Time

2、日期和文本之间的转换

有的时候,我们需要将日期按照指定的格式,转为文本信息。而有的时候,又需要将文本转为日期,那么就需要用到format()和parse()函数。

日期转为文本:

func (t Time) Format(layout string) string

文本转为日期:

func Parse(layout, value string) (Time, error)

3、时间戳

时间戳:指定的日期(当前日期,指定的某个日期),距离1970年1月1日0点0时0分0秒的时间差值。有秒,纳秒两种函数。

获取单位为秒的时间戳:

func (t Time) Unix() int64

获取单位为纳秒的时间戳:

func (t Time) UnixNano() int64

4、获取年月日时间秒等

根据time对象,可以获取对应的年、月、日、时、分、秒等等。

func (t Time) Year() intfunc (t Time) Month() Monthfunc (t Time) Day() intfunc (t Time) Hour() intfunc (t Time) Minute() intfunc (t Time) Second() intfunc (t Time) Date() (year int, month Month, day int)。。。

5、Sleep()

在程序中调用Sleep()函数,可以让当前的程序,进入睡眠:

func Sleep(d Duration)

6、示例代码

time包的示例代码如下:

package mainimport (    "time"    "fmt"    "math/rand")func main() {         //1.获取当前的时间     t1:=time.Now()     fmt.Printf("%Tn",t1)// time.Time     fmt.Println(t1)//2018-05-29 10:58:23.789029492 +0800 CST m=+0.001181079     //2.获取指定的时间     t2 :=time.Date(2008,7,15,16,30,28,0,time.Local)     fmt.Println(t2)     //3.time--string之间的转换     //fmt.Println(t1.String())          s1 := t1.Format("2006年1月2日 15:04:05")     fmt.Println(s1)     s2 :=t1.Format("2006-01-02")     fmt.Println(s2)     s3 := "1999年10月10日" //string     t3,err:=time.Parse("2006年1月2日",s3)     if err != nil{        fmt.Println("err:",err.Error())     }     fmt.Println(t3)     //4.时间戳:指定的日期(当前日期,指定的某个日期),距离1970年1月1日0点0时0分0秒的时间差值:秒,纳秒     t4 := time.Date(1970,1,1,1,0,0,0,time.UTC)     timeStamp1:=t4.Unix() //秒的差值     fmt.Println(timeStamp1)//3600     timeStamp2 :=t1.Unix()     fmt.Println(timeStamp2)     timeStamp3 :=t4.UnixNano()//纳秒差值     fmt.Println(timeStamp3)//3600 000 000 000     timeStamp4:=t1.UnixNano()     fmt.Println(timeStamp4)     //5.根据当前的时间获取指定的内容:年,月,日,     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.Weekday())//星期几     fmt.Println(t1.ISOWeek()) //年份,和该年份中的第几个星期     //t1.Nanosecond()     //5.时间间隔     t5 := t1.Add(time.Minute)//duritaion时间间隔之前/后     fmt.Println(t1)     fmt.Println(t5)     fmt.Println(t1.Add(24*time.Hour)) //1天之后     t6:=t1.AddDate(1,0,0)     fmt.Println(t6)     fmt.Println(t1.Add(-5*time.Minute))     d1:=t5.Sub(t1) //两个time的时间差值: Duration     fmt.Printf("%Tn",d1)     fmt.Println(d1)     //6.睡眠     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)//Duration     fmt.Println("睡醒了。。")}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/793630.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号