Go by Example - IT: Epoch

Spesso i nostri programmi potrebbero aver bisogno di ottenere il numero di secondi, millisecondi o nanosecondi dallo Unix Epoch. Ecco come si può fare in Go.

package main
import "fmt"
import "time"
func main() {

Usa time.Now con Unix o UnixNano per ottenere il tempo passato dallo Unix Epoch rispettivamente in secondi o millisecondi.

    now := time.Now()
    secs := now.Unix()
    nanos := now.UnixNano()
    fmt.Println(now)

Nota che non c’è nessun UnixMillis, quindi per ottenere i millisecondi devi dividere manualmente i nanosecondi.

    millis := nanos / 1000000
    fmt.Println(secs)
    fmt.Println(millis)
    fmt.Println(nanos)

Puoi anche convertire un int con il numero di secondi o di millisecondi ad un time.Time.

    fmt.Println(time.Unix(secs, 0))
    fmt.Println(time.Unix(0, nanos))
}
$ go run epoch.go 
2012-10-31 16:13:58.292387 +0000 UTC
1351700038
1351700038292
1351700038292387000
2012-10-31 16:13:58 +0000 UTC
2012-10-31 16:13:58.292387 +0000 UTC

Adesso daremo un’occhiata ad un altro task relativo al tempo: il parsing e la formattazione del tempo.

Prossimo esempio: Formattazione / Parsing del Tempo.