時間戳記是電腦處理時間的一種方式,通常以整數表示某個時間點距離另一個時間點(通常為 1970 年 1 月 1 日 00:00:00 UTC)的秒數。在 Go 語言中,轉換時間戳記非常簡單,本文將介紹一些相關的方法和技巧。
time.Unix() 函數接受兩個參數,一個是Unix 時間戳,另一個是納秒偏移量。它會傳回一個對應的 Time 類型的值。例如:
package main import ( "fmt" "time" ) func main() { unixTimestamp := int64(1609459200) t := time.Unix(unixTimestamp, 0) fmt.Println(t) }
上面的程式碼將時間戳記 1609459200
轉換為對應的時間值:2021-01-01 00:00:00 0000 UTC
。其中第二個參數是奈秒偏移量,如果你不需要用到它,可以傳入 0。
time.UnixNano() 函數接受一個Unix 時間戳,並傳回它對應的奈秒數。例如:
package main import ( "fmt" "time" ) func main() { unixTimestamp := int64(1609459200) nano := time.UnixNano(unixTimestamp) fmt.Println(nano) }
上面的程式碼將時間戳記 1609459200
轉換為對應的奈秒數:1609459200000000000
。
time.Since() 方法接受一個時間值,並傳回目前時間與該時間值之間的持續時間。因此,我們可以將時間戳轉換為時間值,然後使用 time.Since() 方法來計算其對應的持續時間。例如:
package main import ( "fmt" "time" ) func main() { unixTimestamp := int64(1609459200) t := time.Unix(unixTimestamp, 0) duration := time.Since(t) fmt.Println(duration) }
上面的程式碼將時間戳記 1609459200
轉換為對應的時間值,然後計算它與目前時間的持續時間:73.141589ms
。
我們可以使用time.Now().Unix() 方法取得目前時間的時間戳,它傳回一個int64 類型的值。例如:
package main import ( "fmt" "time" ) func main() { unixTimestamp := time.Now().Unix() fmt.Println(unixTimestamp) }
上面的程式碼取得目前時間的時間戳,並將其列印出來。你可以看到,輸出的時間戳記是一個當前時間的整數值。
time.Parse() 方法接受兩個參數,一個是時間格式字串,另一個是需要轉換的時間字串。它會傳回一個對應的 Time 類型的值。例如:
package main import ( "fmt" "time" ) func main() { layout := "2006-01-02 15:04:05" str := "2021-01-01 00:00:00" t, err := time.Parse(layout, str) if err != nil { fmt.Println(err) return } fmt.Println(t) }
上面的程式碼將字串"2021-01-01 00:00:00"
轉換為對應的時間值:2021-01-01 00: 00:00 0000 UTC
。其中,layout
參數是時間格式字串,必須使用指定時間序列Mon Jan 2 15:04:05 MST 2006
來表示時間的各個部分,這是因為go 的時間套件採用了該序列,而且其初始時間正好是Unix 時間戳0
所對應的時間。
總結
本文介紹了在 go 語言中將時間戳轉換為時間值、奈秒數、持續時間等的方法和技巧。當需要在 go 語言中處理時間時,這些方法非常有用。當然,根據你的具體應用場景,你可以選擇其中的一種或多種方法進行時間戳記的轉換和處理。
以上是golang 轉換時間戳的詳細內容。更多資訊請關注PHP中文網其他相關文章!