Метод time.Time.Unix
Метод time.Time.Unix преобразует значение времени в
количество секунд, прошедших с начала эпохи Unix
(1 января 1970 года, 00:00:00 UTC). Он возвращает
значение типа int64. Метод полезен для
сравнения временных меток, их хранения в числовом формате
или передачи между системами.
Синтаксис
t.Unix() int64
Метод не принимает параметров и возвращает
количество секунд с начала эпохи Unix для
времени, представленного объектом time.Time.
Пример
Давайте получим Unix-время для текущего момента:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
unixTime := now.Unix()
fmt.Println(unixTime)
}
Результат выполнения кода:
"1764835200"
В примере мы получили текущее время с помощью
time.Now и преобразовали его в Unix-время.
Результат будет различаться в зависимости от
момента выполнения.
Пример
Создадим конкретную дату и получим её Unix-время:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC)
unixTime := t.Unix()
fmt.Println(unixTime)
}
Результат выполнения кода:
"1577836800"
Здесь мы создали время, соответствующее 1 января 2020 года в UTC, и получили его Unix-представление. Результат показывает количество секунд между этой датой и эпохой Unix.
Пример
Получим Unix-время для даты в прошлом:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2000, time.January, 1, 0, 0, 0, 0, time.UTC)
unixTime := t.Unix()
fmt.Println(unixTime)
}
Результат выполнения кода:
"946684800"
Метод Unix корректно работает с датами как
после, так и до начала эпохи Unix, возвращая
отрицательные значения для дат до 1970 года.
В примере показано положительное значение для
даты после начала эпохи.
Смотрите также
-
метод
time.Time.UnixMilli,
который возвращает количество миллисекунд с начала эпохи -
метод
time.Time.UnixMicro,
который возвращает количество микросекунд с начала эпохи -
метод
time.Time.UnixNano,
который возвращает количество наносекунд с начала эпохи -
функцию
time.Unix,
которая создает время из Unix-секунд и наносекунд