Epoch

Epoch #

// Spesso i nostri programmi potrebbero aver bisogno di
// ottenere il numero di secondi, millisecondi o
// nanosecondi dallo <a href="https://it.wikipedia.org/wiki/Tempo_(Unix)">Unix Epoch</a>.
// 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.