首頁 > 後端開發 > Golang > 主體

golang 轉換時間戳

王林
發布: 2023-05-15 14:10:09
原創
1354 人瀏覽過

時間戳記是電腦處理時間的一種方式,通常以整數表示某個時間點距離另一個時間點(通常為 1970 年 1 月 1 日 00:00:00 UTC)的秒數。在 Go 語言中,轉換時間戳記非常簡單,本文將介紹一些相關的方法和技巧。

  1. 使用time.Unix() 函數將時間戳記轉換為時間值

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。

  1. 使用time.UnixNano() 函數將時間戳記轉換為奈秒

time.UnixNano() 函數接受一個Unix 時間戳,並傳回它對應的奈秒數。例如:

package main

import (
    "fmt"
    "time"
)

func main() {
    unixTimestamp := int64(1609459200)
    nano := time.UnixNano(unixTimestamp)
    fmt.Println(nano)
}
登入後複製

上面的程式碼將時間戳記 1609459200 轉換為對應的奈秒數:1609459200000000000

  1. 使用time.Since() 方法將時間戳記轉換為duration(持續時間)

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

  1. 使用time.Now().Unix() 方法取得目前時間的時間戳記

我們可以使用time.Now().Unix() 方法取得目前時間的時間戳,它傳回一個int64 類型的值。例如:

package main

import (
    "fmt"
    "time"
)

func main() {
    unixTimestamp := time.Now().Unix()
    fmt.Println(unixTimestamp)
}
登入後複製

上面的程式碼取得目前時間的時間戳,並將其列印出來。你可以看到,輸出的時間戳記是一個當前時間的整數值。

  1. 使用time.Parse() 方法將字串轉換為時間值

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!