Go 日期時間字串(string)與time.Time
轉換的方式如下。
範例環境:
- Go 1.17
Go比較特別的是format格式是用2006-01-02 15:04:05
layout 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.RFC3339
或time.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
沒有留言:
張貼留言