golang中time包之時(shí)間間隔格式化和秒、毫秒、納秒等時(shí)間戳格式輸出的方法實(shí)例_第1頁(yè)
golang中time包之時(shí)間間隔格式化和秒、毫秒、納秒等時(shí)間戳格式輸出的方法實(shí)例_第2頁(yè)
golang中time包之時(shí)間間隔格式化和秒、毫秒、納秒等時(shí)間戳格式輸出的方法實(shí)例_第3頁(yè)
golang中time包之時(shí)間間隔格式化和秒、毫秒、納秒等時(shí)間戳格式輸出的方法實(shí)例_第4頁(yè)
golang中time包之時(shí)間間隔格式化和秒、毫秒、納秒等時(shí)間戳格式輸出的方法實(shí)例_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第golang中time包之時(shí)間間隔格式化和秒、毫秒、納秒等時(shí)間戳格式輸出的方法實(shí)例目錄獲取當(dāng)前時(shí)間的年、月、日、時(shí)、分、秒的方法如下:獲取從1970到現(xiàn)在經(jīng)過的時(shí)間的方法如下:時(shí)間間隔格式化輸出方法:總結(jié)

獲取當(dāng)前時(shí)間的年、月、日、時(shí)、分、秒的方法如下:

//獲取當(dāng)前時(shí)間

now:=time.Now()

//當(dāng)前時(shí)間的年、月、日、小時(shí)、分鐘、秒和納秒都可以通過現(xiàn)有接口直接獲取

year:=now.Year()

month:=now.Month()

day:=now.Day()

hour:=now.Hour()

minute:=now.Minute()

second:=now.Second()

nanosecond:=now.Nanosecond()

//當(dāng)前時(shí)間的微秒和毫秒是通過納秒計(jì)算生成

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)

運(yùn)行結(jié)果如下:

2025-06-0919:25:52.022598620

2025June9192552225986202259822

獲取從1970到現(xiàn)在經(jīng)過的時(shí)間的方法如下:

//獲取從1970經(jīng)過的時(shí)間,秒和納秒都可以通過現(xiàn)有接口直接獲取

sec:=now.Unix()//時(shí)間戳位數(shù)為10

ms:=now.UnixMilli()//時(shí)間戳位數(shù)為13

us:=now.UnixMicro()//時(shí)間戳位數(shù)為16

ns:=now.UnixNano()//時(shí)間戳位數(shù)為19

fmt.Printf("sec:%v\nms:%v\nus:%v\nns:%v\n",sec,ms,us,ns)

運(yùn)行結(jié)果如下:

sec:1654773952

ms:1654773952025

us:1654773952025598

ns:1654773952025598620

時(shí)間間隔格式化輸出方法:

//時(shí)間間隔返回的是time.Duration,下面以1h1m1s1ms1us1ns的時(shí)間間隔舉例,測(cè)試各種格式的打印效果

duration:=1*time.Hour+1*time.Minute+1*time.Second+

1*time.Millisecond+1*time.Microsecond+1*time.Nanosecond

//直接使用%v打印,不轉(zhuǎn)換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()接口

//前三個(gè)接口返回類型為float64可以通過0.3f打印小數(shù)點(diǎn)后的數(shù),

//后三個(gè)為int64,是整數(shù),小數(shù)點(diǎn)后都是0

//下面列舉秒和毫秒的格式打印,其他時(shí)間單位可以參考秒和毫秒

//秒的打印格式%f可以打印小數(shù)點(diǎn)后9位,精確到納秒

fmt.Printf("duration:%vsec\n",duration.Seconds())

fmt.Printf("duration:%0.3fsec\n",duration.Seconds())

fmt.Printf("duration:%0.6fsec\n",duration.Seconds())

//毫秒沒有小數(shù)點(diǎn),都是整數(shù),轉(zhuǎn)換成float后,小數(shù)點(diǎn)后都是0

fmt.Printf("duration:%vms\n",duration.Milliseconds())

fmt.Printf("duration:%.3dms\n",duration.Milliseconds())

fmt.Printf("duration:%.3fms\n",float64(duration.Milliseconds()))

}

行結(jié)果如下:

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

通過測(cè)試程序可以看到:

1.沒時(shí)間單位轉(zhuǎn)換的格式輸出,直接用%v能精確到ns,%.3V,只是對(duì)輸出的字符串進(jìn)行了切割。此處建議直接用%v即可。

2.對(duì)于秒的格式輸出,%v精確到小數(shù)點(diǎn)9位,即納秒。當(dāng)然可以根據(jù)%f的格式調(diào)整,例如%.3f精確到毫秒

3.對(duì)于毫秒的格式輸出,直接用%v或%d即可,轉(zhuǎn)換成float64沒有意義

一般在統(tǒng)計(jì)一個(gè)函數(shù)或一段程序運(yùn)行了多長(zhǎng)時(shí)間,一般建議使用第二種方式,轉(zhuǎn)換成秒的格式輸出,再根據(jù)精度調(diào)整%f的格式即可。

第一種方式有可能出現(xiàn)時(shí)間單位不統(tǒng)一,例如一個(gè)是分鐘,一個(gè)是秒。

上面例子完成的代碼如下:

packagemain

import(

"fmt"

"time"

funcmain(){

//獲取當(dāng)前時(shí)間

now:=time.Now()

//當(dāng)前時(shí)間的年、月、日、小時(shí)、分鐘、秒和納秒都可以通過現(xiàn)有接口直接獲取

year:=now.Year()

month:=now.Month()

day:=now.Day()

hour:=now.Hour()

minute:=now.Minute()

second:=now.Second()

nanosecond:=now.Nanosecond()

//當(dāng)前時(shí)間的微秒和毫秒是通過納秒計(jì)算生成

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經(jīng)過的時(shí)間,秒和納秒都可以通過現(xiàn)有接口直接獲取

sec:=now.Unix()//時(shí)間戳位數(shù)為10

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論