Как преобразовать метку времени UNIX в time.Time?

Как преобразовать метку времени UNIX в объект time.Time?


Ответы (1 шт):

Автор решения: wchistow

Можно использовать time.Unix():

package main

import (
    "fmt"
    "time"
)

func main() {
    unixTime := time.Unix(1589570165, 0) // 0 - это число наносекунд

    fmt.Println(unixTime)
}
2020-05-15 22:16:05 +0300 MSK

Update

Во многих онлайн-системах метки времени возвращаются с миллсекундами, бывают даже метки времени с микросекундами. Это тоже называют метками времени UNIX. Для них в пакете time предусмотрены специальные функции time.UnixMilli и time.UnixMicro. Пример:

package main

import (
    "fmt"
    "time"
)

func main() {
    unixTimeMilli := time.UnixMilli(1589570165123)
    unixTimeMicro := time.UnixMicro(1589570165123456)

    fmt.Println("millis: ", unixTimeMilli)
    fmt.Println("micros: ", unixTimeMicro)
}
millis:  2020-05-15 19:16:05.123 +0000 UTC
micros:  2020-05-15 19:16:05.123456 +0000 UTC
→ Ссылка