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

golang 日期轉換

王林
王林原創
2023-05-21 14:16:071163瀏覽

Golang 日期轉換

在 Golang 中,日期的表示方式有多種,包括 time.Time、string、int64 等。因此,如何對這些日期進行轉換是一個常見的問題。

本文將介紹 Golang 中日期轉換的常見方法。主要包括以下幾個面向:

  1. time.Time 轉string
  2. string 轉time.Time
  3. int64 轉time.Time
  4. time .Time 轉int64
  5. 其他格式的日期轉換
  6. time.Time 轉string

time.Time 類型可以使用Format 函數將其轉換成字串。例如:

t := time.Now()
str := t.Format("2006-01-02 15:04:05") // 以指定格式转换为字符串

其中,Format 的參數是日期格式化字串,具體格式可以參考 Golang 的文檔。

  1. string 轉 time.Time

string 轉 time.Time 可以使用 time.Parse 函數。例如:

str := "2022-03-25 10:30:00"
t, err := time.Parse("2006-01-02 15:04:05", str) // 将字符串解析成时间
if err != nil {
    // 解析失败
}

其中,第一個參數是日期格式化字串,第二個參數是需要解析的字串。如果解析失敗,err 不為空。

  1. int64 轉 time.Time

在 Golang 中,時間戳通常以 int64 類型表示,可以使用 time.Unix 函數將其轉換成 time.Time 類型。例如:

timestamp := int64(1648238400)
t := time.Unix(timestamp, 0) // 将时间戳转换成时间

其中,第一個參數是時間戳,第二個參數是奈秒,可以設定為 0。

  1. time.Time 轉 int64

time.Time 類型可以使用 Unix 函數將其轉換成時間戳記。例如:

t := time.Now()
timestamp := t.Unix() // 将时间转换成时间戳

函數傳回的是 int64 類型的時間戳記。

  1. 其他格式的日期轉換

如果需要將其他格式的日期轉換成time.Time 類型,可以先轉換成string 類型,再使用time. Parse 函數解析。例如:

date := "2022年03月25日 10时30分00秒"
layout := "2006年01月02日 15时04分05秒" // 对应日期格式字符串
str, err := time.Parse(layout, date) // 先将其转换成字符串
if err != nil {
    // 解析失败
}
t, err := time.Parse("2006-01-02 15:04:05", str.Format("2006-01-02 15:04:05")) // 再解析成时间
if err != nil {
    // 解析失败
}

以上就是 Golang 中日期轉換的常見方法。無論是將 time.Time 轉換成 string,還是將 string 轉換成 time.Time,都可以透過 Golang 標準函式庫中的函數進行轉換。對於其他格式的日期,可以先轉換成 string 類型,再使用 time.Parse 函數解析。

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

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