Go за Прикладом: Epoch

Work in Progress / Сайт в процесі розробки

Нерідко вимагається взнати скільки пройшло в секундах, мілісекундах або наносекундах з моменту початку часу Unix. І ось як ми це робимо в Go.

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

Використайте time.Now з Unix або UnixNano для отрмання часу з моменту початку Unix часу для отримання секунд або наносекунд відповідно.

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

Зауважте що не існує UnixMillis, отож щоб отримати мілісекунди вам необзідно буде ділити наносекунди.

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

Є можливим конвернувати цілочисельні секунди або наносекунди з моменту початку епохі Unix у відповідний 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

Далі ми роглянемо ще один задачу по темі часу: розбір часу і його форматування.

Наступний приклад: Форматування Часу.