首页> 基础笔记 >GoLang基础学习 >函数 函数
Golang常用日期和时间函数详解
作者:小萝卜 2023-04-06 【 GoLang 】 浏览 734
简介在编程中,程序员会经常使用到日期相关的函数,比如:统计某段代码执行花费的时间等等。1)时间和日期相关函数,需要导入 time包2) time.Time类型,用于表示时间
在编程中,程序员会经常使用到日期相关的函数,比如:统计某段代码执行花费的时间等等。
1)时间和日期相关函数,需要导入 time包
2) time.Time类型,用于表示时间
//1. 获取当前时间
now := time.Now()
fmt.Printf("now=%v now type=%T\n", now, now)
3)如何获取到其它的日期信息
//2.通过now可以获取到年月日,时分秒
fmt.Printf("年=%v\n", now.Year())
fmt.Printf("月=%v\n", now.Month())
fmt.Printf("月=%v\n", int(now.Month()))
fmt.Printf("日=%v\n", now.Day())
fmt.Printf("时=%v\n", now.Hour())
fmt.Printf("分=%v\n", now.Minute())
fmt.Printf("秒=%v\n", now.Second())
4)格式化日期时间
方式 1:就是使用 Printf或者 SPrintf
fmt.Printf("当前年月日 %d-%d-%d %d:%d:%d \n", now.Year(),
now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
dateStr := fmt.Sprintf("当前年月日 %d-%d-%d %d:%d:%d \n", now.Year(),
now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second())
fmt.Printf("dateStr=%v\n", dateStr)
方式二:使用 time.Format()方法完成:
//格式化日期时间的第二种方式
fmt.Printf(now.Format("2006-01-02 15:04:05")) //输出当前 年月日时分秒
fmt.Println()
fmt.Printf(now.Format("2006-01-02")) //输出当前 年月日
fmt.Println()
fmt.Printf(now.Format("15:04:05")) //输出当前时分秒
fmt.Println()
fmt.Printf(now.Format("2006")) //输出当前年
fmt.Println()
对上面代码的说明:
"2006/01/02 15:04:05"这个字符串的各个数字是固定的,必须是这样写。
"2006/01/02 15:04:05"这个字符串各个数字可以自由的组合,这样可以按程序需求来返回时间和日期
5)时间的常量
const (
Nanosecond Duration = 1 //纳秒
Microsecond = 1000 * Nanosecond //微秒
Millisecond = 1000 * Microsecond //毫秒
Second = 1000 * Millisecond //秒
Minute = 60 * Second //分钟
Hour = 60 * Minute //小时
)
常量的作用:在程序中可用于获取指定时间单位的时间,比如想得到 100毫秒100 * time. Millisecond
6)结合 Sleep来使用一下时间常量
//需求,每隔1秒中打印一个数字,打印到100时就退出
//需求2: 每隔0.1秒中打印一个数字,打印到100时就退出
i := 0
for {
i++
fmt.Println(i)
//休眠
//time.Sleep(time.Second)
time.Sleep(time.Millisecond * 100)
if i == 100 {
break
}
}
7) time的 Unix和 UnixNano的方法
//Unix和UnixNano的使用
fmt.Printf("unix时间戳=%v unixnano时间戳=%v\n", now.Unix(), now.UnixNano())
得到的结果是:
unix时间戳=1680793276
unixnano时间戳=1680793276491006600
很赞哦! (0)