網頁

2022/1/21

Golang 日期時間字串與Time轉換 datetime string and Time conversion

Go 日期時間字串(string)與time.Time轉換的方式如下。


範例環境:

  • Go 1.17


Go比較特別的是format格式是用2006-01-02 15:04:05layout string定義,而非其他語言 (e.g. Java)常用的ISO format yyyy-MM-dd hh:mm:ss


string to time.Time

使用time.Parse(layout, value string)把字串轉換為time.Time,第一個參數輸入要解析的日期時間格式(layout/format),第二個參數輸入日期時間字串。注意若layout格式為time.RFC3339time.RFC3339Nano,則解析的時區為系統所在時區。


time.Time to string

使用Time.Format(ayout string)輸入時間日期格式參數把time.Time轉為字串。



範例

main.go

package main

import (
    "fmt"
    "time"
)

func main() {
    ts := "2022-01-22 10:15:06" // datetime string

    t, err := time.Parse("2006-01-02 15:04:05", ts)
    if err != nil {
        panic(err)
    }
    fmt.Println(t) // 2022-01-22 10:15:06 +0000 UTC

    fmt.Println(t.Format("2006-01-02 15:04:05")) // 2022-01-22 10:15:06
    fmt.Println(t.Format("2006-01-02"))          // 2022-01-22
    fmt.Println(t.Format("15:04:05"))            // 10:15:06
    fmt.Println(t.Format("2006/01/02 3PM"))      // 2022/01/22 10AM
    fmt.Println(t.Format(time.RFC3339))          // 2022-01-22T10:15:06Z
    fmt.Println(t.Format(time.RFC1123))          // Sat, 22 Jan 2022 10:15:06 UTC
}


測試

執行印出以下。

2022-01-22 10:15:06 +0000 UTC
2022-01-22 10:15:06
2022-01-22
10:15:06
2022/01/22 10AM
2022-01-22T10:15:06Z
Sat, 22 Jan 2022 10:15:06 UTC


沒有留言:

張貼留言