Time包的使用
常用方法介绍
获取当前时间
-
time.Now()
方法返回值是Time
类型的值,直接输出返回值,得到的结果是默认格式下的时间戳 -
代码展示
go//获取当前时间 nowTime := time.Now() fmt.Println(nowTime)
获取指定的时间
-
time.Data()
方法的参数包含很多值,包括年月日,时分秒,毫秒微秒,时区 -
返回值是一个指定时间的时间戳,一般用于创建时间戳,用于参与判断等
-
代码展示
goAppointTime := 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
-
代码展示
gotime1 := time.Now() FString := time1.Format("2006年01月02日 03时04分05秒") fmt.Println(FString)
//解析时间字符串为时间戳
1.使用time包中的Parse("格式模版")
2.格式模版必须和需要解析字符串的模版一致
-
将获得的时间字符串转换成时间戳,方便进行运算,比较等...
-
主要函数
- Time类型的Parse()方法
- 方法参数: 1.模版格式 2.需要转化的时间字符串
- 格式模版必须和需要解析字符串的模版一致
-
代码展示
gotime2 := "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)
单独获取时间
- 直接代码展示
go
//单独获取时间
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()
方法,参数是年月日 - 注意: 添加时间(正数表示往后添加,负数表示往前添加)
- Time类中的
-
代码展示
gofmt.Println("添加之后的时间", timeData.Add(1*time.Second)) //默认单位是纳秒,也可以自己添加 fmt.Println("添加后的时间", timeData.AddDate(1, 2, 3))
计算时间差
-
方法:
- Time类中的
Sub()
方法 - 参数是另外一个Time类型的值
- 返回值是 时间差 ,单位是纳秒
- Time类中的
-
代码展示
gofmt.Println("时间的间隔: ", timeData.Sub(time.Now()))
利用时间戳制作随机数的种子
-
使用不断变化的时间戳,制作随机数的种子,使得获取到的随机数更加随机
-
代码展示
go
//随机数值
rand.NewSource(time.Now().Unix())
fmt.Println("随机数值:", rand.Intn(10)-1)