Go в примери: Епоха

Често срещано изискване в програмите е да се вземе броя на секундите, милисекундите или нанносекундите, изтекли от т.нар Епоха на Юникс1. Ето как се прави това в Го.


  1. Епоха на Юникс – времето в невисокосни секунди, започващо в 00:00:00 ч. UTC на 1ви януари 1970 г. насам. Виж https://en.wikipedia.org/wiki/Unixtime и https://bg.wikipedia.org/wiki/Високоснасекунда
package main
import (
    "fmt"
    "time"
)
func main() {

Използвайте time.Now с методите Unix, UnixMilli или UnixNano, за да вземете изтеклото (сиреч текущото) време от началото на епохата Юникс съответно в секунди, милисекунди или наносекунди.

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

Можете също да превърнете целочислените секунди от епохата в съответните стойности от вида time.

    fmt.Println(time.Unix(now.Unix(), 0))
    fmt.Println(time.Unix(0, now.UnixNano()))
}

След това ще разгледаме друга задача, свързана с време – разбор и задаване на изглед.

$ go run epoch.go 
2026-03-10 11:41:57.168635286 +0200 EET m=+0.000023199
1773135717
1773135717168
1773135717168635286
2026-03-10 11:41:57 +0200 EET
2026-03-10 11:41:57.168635286 +0200 EET

Следващ пример: .