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