Gestione del Tempo
Le funzioni di gestione del tempo sono offerte dal package time.
Un tempo รจ rappresentato come timestamp ISO.
Esistono funzioni di estrazione dei vari componenti del timestamp.
Esistono anche funzioni per il paragone di timestamps e per la loro modifica in aggiunta o in differenza.
La funzione Now estrae il timestamp corrente.
(480time.go):
package main
import "fmt"
import "time"
func main() {
// Alias per la funzione
p := fmt.Println
// Il timestamp del momento corrente
now := time.Now()
p(now)
// Costruzione di una struct con una data
then := time.Date(
2009, 11, 17, 20, 34, 58, 651387237, time.UTC)
p(then)
// Estrazione dei campi della struct
p(then.Year())
p(then.Month())
p(then.Day())
p(then.Hour())
p(then.Minute())
p(then.Second())
p(then.Nanosecond())
p(then.Location())
// Esiste anche il giorno della settimana
p(then.Weekday())
// Funzioni booleane per il paragone di date
p(then.Before(now))
p(then.After(now))
p(then.Equal(now))
// Differenza tra due date
diff := now.Sub(then)
p(diff)
// Estrazione dei componenti della differenza
p(diff.Hours())
p(diff.Minutes())
p(diff.Seconds())
p(diff.Nanoseconds())
// Modifica di data con una differenza
p(then.Add(diff))
p(then.Add(-diff))
}