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))
}