Go soporta el formateo y análisis de tiempo a través de
patrones de diseño.
|
|
|
package main
|
|
import (
"fmt"
"time"
)
|
|
func main() {
p := fmt.Println
|
Aquí hay un ejemplo básico de cómo formatear un tiempo
según RFC3339, utilizando la constante de diseño correspondiente.
|
t := time.Now()
p(t.Format(time.RFC3339))
|
El análisis de tiempo utiliza los mismos valores de diseño que Format .
|
t1, e := time.Parse(
time.RFC3339,
"2012-11-01T22:08:41+00:00")
p(t1)
|
Format y Parse usan diseños basados en ejemplos. Usualmente
utilizarás una constante de time para estos diseños, pero
también puedes proporcionar diseños personalizados. Los diseños deben usar la
hora de referencia Mon Jan 2 15:04:05 MST 2006 para mostrar el
patrón con el cual formatear/analizar un tiempo/cadena dado.
La hora de ejemplo debe ser exactamente como se muestra: el año 2006,
15 para la hora, lunes para el día de la semana, etc.
|
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)
|
Para representaciones puramente numéricas también puedes
usar el formateo de cadenas estándar con los componentes extraídos
del valor del tiempo.
|
fmt.Printf("%d-%02d-%02dT%02d:%02d:%02d-00:00\n",
t.Year(), t.Month(), t.Day(),
t.Hour(), t.Minute(), t.Second())
|
Parse devolverá un error en entradas mal formadas
explicando el problema de análisis.
|
ansic := "Mon Jan _2 15:04:05 2006"
_, e = time.Parse(ansic, "8:41PM")
p(e)
}
|