AdSense

網頁

2022/1/22

Golang 建立指定的日期時間 create specific datetime

Go 建立指定的日期時間time.Time的方式如下。


範例環境:

  • Go 1.17
  • 主機位置:台北(Asia/Taipei)


範例

使用time.Date()依序輸入指定的年(year)、月(month),日(day)、時(hour)、分(min)、秒(sec)、奈秒(nsec)、時區位置(Location)參數建立指定的時間的time.Time。例如下面的t1時區為本地時間(local)。

使用time.Parse()輸入日期時間格式(layout)及相符的指定日期時間字串。例如範例的日期時間格式為2006-01-02 15:04:05。若layout沒有設定時間偏移(offset)則預設是UTC時間,如下面的t2為UTC時間。反之t3有設定偏移時間+800

main.go

package main

import (
    "fmt"
    "time"
)

func main() {
    t1 := time.Date(2022, 1, 22, 16, 30, 45, 0, time.Local)
    fmt.Println(t1)       // 2022-01-22 16:30:45 +0800 CST
    fmt.Println(t1.UTC()) // 2022-01-22 08:30:45 +0000 UTC

    t2, err := time.Parse("2006-01-02 15:04:05", "2022-01-22 16:30:45")
    if err != nil {
        panic(err)
    }
    fmt.Println(t2) // 2022-01-22 08:30:45 +0000 UTC

    t3, err := time.Parse("2006-01-02 15:04:05-0700", "2022-01-22 16:30:45+0800") //UTC+0800 (Aisa/Taipei local)
    if err != nil {
        panic(err)
    }
    fmt.Println(t3) // 2022-01-22 16:30:45 +0800 CST

}


測試

執行印出以下。

2022-01-22 16:30:45 +0800 CST
2022-01-22 08:30:45 +0000 UTC
2022-01-22 16:30:45 +0000 UTC
2022-01-22 16:30:45 +0800 CST


沒有留言:

AdSense