概念簡介
Go 支持通過基於描述模板的時間格式化和解析。
例程代碼
package main
import "fmt"
import "time"
func main() {
p := fmt.Println
// 這裏是一個基本的按照 RFC3339 進行格式化的例子,使用
// 對應模式常量。
t := time.Now()
p(t.Format(time.RFC3339))
// 時間解析使用同 `Format` 相同的形式值。
t1, e := time.Parse(
time.RFC3339,
"2012-11-01T22:08:41+00:00")
p(t1)
// `Format` 和 `Parse` 使用基於例子的形式來決定日期格式,
// 一般你隻要使用 `time` 包中提供的模式常量就行了,但是你
// 也可以實現自定義模式。模式必須使用時間 `Mon Jan 2 15:04:05 MST 2006`
// 來指定給定時間/字符串的格式化/解析方式。時間一定要按照
// 如下所示:2006為年,15 為小時,Monday 代表星期幾,等等。
p(t.Format("3:04PM"))
p(t.Format("Mon Jan _2 15:04:05 2006"))
p(t.Format("2006-01-02T15:04:05.999999-07:00"))
form := "3 04 PM"
t2, e := time.Parse(form, "8 41 PM")
p(t2)
// 對於純數字表示的時間,你也可以使用標準的格式化字
// 符串來提出時間值的組成。
fmt.Printf("%d-%02d-%02dT%02d:%02d:%02d-00:00\n",
t.Year(), t.Month(), t.Day(),
t.Hour(), t.Minute(), t.Second())
// `Parse` 函數在輸入的時間格式不正確時會返回一個
// 錯誤。
ansic := "Mon Jan _2 15:04:05 2006"
_, e = time.Parse(ansic, "8:41PM")
p(e)
}
執行&輸出
$ go run time-formatting-parsing.go
2014-04-15T18:00:15-07:00
2012-11-01 22:08:41 +0000 +0000
6:00PM
Tue Apr 15 18:00:15 2014
2014-04-15T18:00:15.161182-07:00
0000-01-01 20:41:00 +0000 UTC
2014-04-15T18:00:15-00:00
parsing time "8:41PM" as "Mon Jan _2 15:04:05 2006": ...
課程導航
學習上一篇:Go語言教程:時間戳 學習下一篇:Go語言教程:隨機數
相關資料
本例程github源代碼:https://github.com/xg-wang/gobyexample/tree/master/examples/time-formatting-parsing