Го поддържа задаване на изглед и разбор на време чрез примерни1 изгледи.
import (
"fmt"
"time"
)
func main() {
p := fmt.Println
Ето основен пример за задаване формат на време според RFC33391 с помощта на съответната непроменлива примерна стойност.
t := time.Now()
p(t.Format(time.RFC3339))
При разбор на време от подаден низ, същите примерни стойности биват ползвани за задаване на очакван изглед (формат).
t1, e := time.Parse(time.RFC3339, "2026-03-10T21:26:41+02: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 ще върне грешка за развален вход и ще обясни
каква е причината за грешката. (В този случай денят от
седмицата няма как да бъде разпознат в подаденото време
“8:41PM”)
_, e = time.Parse("Mon Jan _2 15:04:05 2006", "8:41PM")
p(e)
}
$ go run time-formatting-parsing.go
2026-03-10T21:46:15+02:00
2026-03-10 21:26:41 +0200 EET
9:46PM
Tue Mar 10 21:46:15 2026
2026-03-10T21:46:15.367028+02:00
0000-01-01 20:41:00 +0000 UTC
2026-03-10T21:46:15-00:00
parsing time "8:41PM" as "Mon Jan _2 15:04:05 2006": cannot parse "8:41PM" as "Mon"
Следващ пример: Случайни числа.