|
Go از قالببندی و تجزیهٔ (parse) زمان با الگوهای
مبتنی بر نمونه (layout) پشتیبانی میکند.
|
|
|
|

package main
|
|
|
import (
"fmt"
"time"
)
|
|
|
func main() {
p := fmt.Println
|
|
این مثال سادهای از قالببندی زمان طبق RFC3339 است،
با استفاده از ثابتِ layout متناظر.
|
t := time.Now()
p(t.Format(time.RFC3339))
|
|
تجزیهٔ زمان از همان مقادیر layout که Format استفاده میکند بهره میبرد.
|
t1, _ := time.Parse(time.RFC3339, "2012-11-01T22:08:41+00:00")
p(t1)
|
|
Format و Parse از layoutهای مبتنی بر نمونه استفاده
میکنند. معمولاً برای این layoutها از یک ثابت در time
استفاده میکنید، اما میتوانید layout سفارشی هم بدهید.
layoutها باید از زمان مرجع 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, _ := 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 برای ورودی نادرست خطایی برمیگرداند که مشکل
تجزیه را توضیح میدهد.
|
_, err := time.Parse("Mon Jan _2 15:04:05 2006", "8:41PM")
p(err)
}
|