




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第golang中time包之时间间隔格式化和秒、毫秒、纳秒等时间戳格式输出的方法实例目录获取当前时间的年、月、日、时、分、秒的方法如下:获取从1970到现在经过的时间的方法如下:时间间隔格式化输出方法:总结
获取当前时间的年、月、日、时、分、秒的方法如下:
//获取当前时间
now:=time.Now()
//当前时间的年、月、日、小时、分钟、秒和纳秒都可以通过现有接口直接获取
year:=now.Year()
month:=now.Month()
day:=now.Day()
hour:=now.Hour()
minute:=now.Minute()
second:=now.Second()
nanosecond:=now.Nanosecond()
//当前时间的微秒和毫秒是通过纳秒计算生成
microsecond:=nanosecond/1e3
millisecond:=nanosecond/1e6
fmt.Println(now.Format("2006-01-0215:04:05.000000000"))
fmt.Println(year,month,day,hour,minute,second,nanosecond,microsecond,millisecond)
运行结果如下:
2025-06-0919:25:52.022598620
2025June9192552225986202259822
获取从1970到现在经过的时间的方法如下:
//获取从1970经过的时间,秒和纳秒都可以通过现有接口直接获取
sec:=now.Unix()//时间戳位数为10
ms:=now.UnixMilli()//时间戳位数为13
us:=now.UnixMicro()//时间戳位数为16
ns:=now.UnixNano()//时间戳位数为19
fmt.Printf("sec:%v\nms:%v\nus:%v\nns:%v\n",sec,ms,us,ns)
运行结果如下:
sec:1654773952
ms:1654773952025
us:1654773952025598
ns:1654773952025598620
时间间隔格式化输出方法:
//时间间隔返回的是time.Duration,下面以1h1m1s1ms1us1ns的时间间隔举例,测试各种格式的打印效果
duration:=1*time.Hour+1*time.Minute+1*time.Second+
1*time.Millisecond+1*time.Microsecond+1*time.Nanosecond
//直接使用%v打印,不转换sec、ms或其他。
fmt.Printf("duration:%v\n",duration)
fmt.Printf("duration:%6v\n",duration)
fmt.Printf("duration:%.6v\n",duration)
fmt.Printf("duration:%.3v\n",duration)
//duration支持Hours()、Minutes()、Seconds()和
//Milliseconds()、Microseconds()、Nanoseconds()接口
//前三个接口返回类型为float64可以通过0.3f打印小数点后的数,
//后三个为int64,是整数,小数点后都是0
//下面列举秒和毫秒的格式打印,其他时间单位可以参考秒和毫秒
//秒的打印格式%f可以打印小数点后9位,精确到纳秒
fmt.Printf("duration:%vsec\n",duration.Seconds())
fmt.Printf("duration:%0.3fsec\n",duration.Seconds())
fmt.Printf("duration:%0.6fsec\n",duration.Seconds())
//毫秒没有小数点,都是整数,转换成float后,小数点后都是0
fmt.Printf("duration:%vms\n",duration.Milliseconds())
fmt.Printf("duration:%.3dms\n",duration.Milliseconds())
fmt.Printf("duration:%.3fms\n",float64(duration.Milliseconds()))
}
行结果如下:
duration:1h1m1.001001001s
duration:1h1m1.001001001s
duration:1h1m1.
duration:1h1
duration:3661.001001001sec
duration:3661.001sec
duration:3661.001001sec
duration:3661001ms
duration:3661001ms
duration:3661001.000ms
通过测试程序可以看到:
1.没时间单位转换的格式输出,直接用%v能精确到ns,%.3V,只是对输出的字符串进行了切割。此处建议直接用%v即可。
2.对于秒的格式输出,%v精确到小数点9位,即纳秒。当然可以根据%f的格式调整,例如%.3f精确到毫秒
3.对于毫秒的格式输出,直接用%v或%d即可,转换成float64没有意义
一般在统计一个函数或一段程序运行了多长时间,一般建议使用第二种方式,转换成秒的格式输出,再根据精度调整%f的格式即可。
第一种方式有可能出现时间单位不统一,例如一个是分钟,一个是秒。
上面例子完成的代码如下:
packagemain
import(
"fmt"
"time"
funcmain(){
//获取当前时间
now:=time.Now()
//当前时间的年、月、日、小时、分钟、秒和纳秒都可以通过现有接口直接获取
year:=now.Year()
month:=now.Month()
day:=now.Day()
hour:=now.Hour()
minute:=now.Minute()
second:=now.Second()
nanosecond:=now.Nanosecond()
//当前时间的微秒和毫秒是通过纳秒计算生成
microsecond:=nanosecond/1e3
millisecond:=nanosecond/1e6
fmt.Println(now.Format("2006-01-0215:04:05.000000000"))
fmt.Println(year,month,day,hour,minute,second,nanosecond,microsecond,millisecond)
//获取从1970经过的时间,秒和纳秒都可以通过现有接口直接获取
sec:=now.Unix()//时间戳位数为10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程经济职能部门协作试题及答案
- 地理信息系统GIS技术应用题
- 农村土地整治与综合开发合作合同
- 公司员工职务晋升证明(8篇)
- 市政工程施工技术解析及试题及答案
- 工程变更申报流程试题及答案
- 2025年工程经济理念探索试题及答案
- 2025年工程经济考试的整体复习试题及答案
- 年度业务发展路径探讨计划
- 学校品牌建设与推广方案计划
- 小学生手工缝制课件大全
- 社区流行病学
- 电厂节能降耗培训课件
- 全国统一考试考务人员网上培训考试试题及答案
- 仪控技术手册-自控专业工程设计用典型条件表
- 校园网规划答辩
- 医学细胞生物学(温州医科大学)知到智慧树章节答案
- 《初级会计实务》(第五版) 第九章 产品成本核算
- 生涯发展展示-(第一版)
- 五角场综合体项目设计任务书
- 信托固定收益合同模板
评论
0/150
提交评论