




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年執業醫師考試復習全攻略及試題及答案
- 2025年經濟法知識點提煉試題及答案
- 2025年衛生資格考試合規性試題及答案
- 2025年執業護士考試技能操作試題與答案
- 知識提升之路衛生資格考試試題及答案
- 2025年經濟法快速復習試題及答案
- 日常護理流程試題及答案
- 主管護師考試實時反饋機制探討試題及答案
- 2025年實習護工的要求試題及答案
- 科目分析執業醫師考試試題及答案核心
- 工程師評審代辦合同協議
- (二模)2025年深圳市高三年級第二次調研考試物理試卷(含標準答案)
- 物品置換合同協議
- 心力衰竭試題及答案
- 公安治安管理培訓
- 平面向量及其應用 章末題型歸納總結(基礎篇)(10大題型)原卷版-2024-2025學年高一數學(人教A版必修第二冊)
- 債權管理制度
- 運動營養學知到課后答案智慧樹章節測試答案2025年春黑龍江冰雪體育職業學院
- 【基于改進杜邦分析法的中國東方航空公司財務分析(數據圖表論文)13000字】
- 2025高級插花花藝師核心備考試題庫及答案(濃縮300題)
- 光伏發電站施工規范完整版2025年
評論
0/150
提交評論