Epoch

Epoch #

// Algo muito comum em diversos softwares é a necessidade
// de saber o número de segundos, milisegundos ou nanosegundos
// desde a [era Unix](https://pt.wikipedia.org/wiki/Era_Unix).
// Aqui está como isso pode ser feito em Go.

package main

import (
	"fmt"
	"time"
)

func main() {

	// O `time.Now` com `Unix`, `UnixMilli` ou `UnixNano`
	// retornam o tempo transcorrido desde a Era Unix,
	// em segundos, milisegundos ou nanosegundos,
	// respectivamente.
	now := time.Now()
	fmt.Println(now)

	fmt.Println(now.Unix())
	fmt.Println(now.UnixMilli())
	fmt.Println(now.UnixNano())

	// Também é possível converter segundos ou nanosegundos
	// de inteiros para o `time` ou tempo correspondente.
	fmt.Println(time.Unix(now.Unix(), 0))
	fmt.Println(time.Unix(0, now.UnixNano()))
}
$ 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

# Em seguida será apresentado outro assunto
# relacionado a tempo:
# formatação e parseamente de tempo.