首頁 >後端開發 >Golang >golang 日期類型轉換

golang 日期類型轉換

WBOY
WBOY原創
2023-05-10 10:02:361745瀏覽

Golang是一種非常流行的程式語言,它的高效性和簡潔性被廣泛認可。在開發應用程式中常常需要進行日期類型的轉換,下面我們來介紹一下Golang日期類型轉換的方法。

在Golang中,日期類型主要有time.Time和string兩種類型。 time.Time型別可以表示一個時間點,而string型別則是一個字串型別表示。要在兩種類型之間進行轉換,可以使用Golang中提供的一些函數來實現。

  1. string轉time.Time

在Golang中,可以透過time.Parse()函數將一個string類型的日期轉換為time.Time型別。範例如下:

str := "2021-06-01 12:00:00"
layout := "2006-01-02 15:04:05"
t, err := time.Parse(layout, str)
if err != nil {
    fmt.Println(err)
}
fmt.Println(t)

解析函數time.Parse()需要傳遞兩個參數:一個是日期字串,另一個是日期字串的格式。在上面的範例中,日期字串是2021-06-01 12:00:00,格式字串是2006-01-02 15:04:05。這裡要注意的是,格式字串中的數字必須依照年、月、日、時、分、秒的順序排列,並使用對應的格式符號。

  1. time.Time轉string

在Golang中,可以透過time.Format()函數將一個time.Time型別的日期轉換為string型別。範例如下:

t := time.Now()
layout := "2006-01-02 15:04:05"
str := t.Format(layout)
fmt.Println(str)

格式化函數time.Format()需要傳遞一個格式字串,該格式字串與解析函數中的字串格式相同。在上面的範例中,取得目前時間使用的是time.Now()函數,格式字串是2006-01-02 15:04:05

  1. Unix時間戳轉time.Time

在Golang中,可以透過time.Unix()函數將一個Unix時間戳記轉換為time.Time型別。範例如下:

unixTime := int64(1622496000)
t := time.Unix(unixTime, 0)
fmt.Println(t)

函數time.Unix()需要傳遞兩個參數:一個是Unix時間戳,另一個是納秒的偏移量,這裡使用0作為偏移量即可。

  1. time.Time轉Unix時間戳

在Golang中,可以透過time.Unix()函數將一個time.Time型別轉換為Unix時間戳記。範例如下:

t := time.Now()
unixTime := t.Unix()
fmt.Println(unixTime)

函數time.Unix()會傳回一個Unix時間戳,並且該時間戳記是int64類型的。在上面的範例中,取得目前時間使用的是time.Now()函數。

總結

Golang日期型別轉換並不難,只需要使用適當的函數即可。以上介紹的四種方法可以滿足大部分日期類型轉換的需求。當然,在實際應用上還有許多特殊情況需要考慮,需要根據具體情況進行調整,但這已經足夠幫助我們入門了。

以上是golang 日期類型轉換的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn