Go ofrece un amplio soporte para tiempos y duraciones;
aquí hay algunos ejemplos.
|
|
|
package main
|
|
import (
"fmt"
"time"
)
|
|
func main() {
p := fmt.Println
|
Comenzaremos obteniendo la hora actual.
|
now := time.Now()
p(now)
|
Puedes construir una estructura time proporcionando el
año, mes, día, etc. Los tiempos siempre están asociados
con una Location , es decir, una zona horaria.
|
then := time.Date(
2009, 11, 17, 20, 34, 58, 651387237, time.UTC)
p(then)
|
Puedes extraer los diversos componentes del valor de tiempo
como se espera.
|
p(then.Year())
p(then.Month())
p(then.Day())
p(then.Hour())
p(then.Minute())
p(then.Second())
p(then.Nanosecond())
p(then.Location())
|
El Weekday de lunes a domingo también está disponible.
|
p(then.Weekday())
|
Estos métodos comparan dos tiempos, probando si el
primero ocurre antes, después o en el mismo momento
que el segundo, respectivamente.
|
p(then.Before(now))
p(then.After(now))
p(then.Equal(now))
|
El método Sub devuelve una Duration que representa
el intervalo entre dos tiempos.
|
diff := now.Sub(then)
p(diff)
|
Podemos calcular la longitud de la duración en
varias unidades.
|
p(diff.Hours())
p(diff.Minutes())
p(diff.Seconds())
p(diff.Nanoseconds())
|
Puedes usar Add para avanzar un tiempo por una duración dada,
o con un - para retroceder por una
duración.
|
p(then.Add(diff))
p(then.Add(-diff))
}
|