Метод time.Time.UnixMilli

Метод UnixMilli преобразует значение time.Time в целое число типа int64, представляющее количество миллисекунд, прошедших с начала эпохи Unix (1 января 1970 года, UTC). Этот метод полезен для работы с API и системами, которые используют миллисекунды для представления времени.

Синтаксис

got.UnixMilli()

Метод не принимает параметров и возвращает значение типа int64.

Пример

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

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  now := time.Now()
  res := now.UnixMilli()
  fmt.Println(res)
}

Результат выполнения кода:

go"1698765432123"

Пример

Давайте создадим конкретную дату и преобразуем ее в миллисекунды:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  t := time.Date(2024, time.January, 1, 0, 0, 0, 0, time.UTC)
  res := t.UnixMilli()
  fmt.Println(res)
}

Результат выполнения кода:

go"1704067200000"

Пример

Давайте преобразуем время с учетом часового пояса и получим миллисекунды:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  loc := time.FixedZone("MSK", 3*60*60)
  t := time.Date(2024, time.January, 1, 0, 0, 0, 0, loc)
  res := t.UnixMilli()
  fmt.Println(res)
}

Результат выполнения кода:

go"1704056400000"

Обратите внимание, что результат отличается от предыдущего примера из-за разницы в часовых поясах.

Смотрите также

  • метод time.Time.Unix,
    который возвращает количество секунд с начала эпохи Unix
  • метод time.Time.UnixMicro,
    который возвращает количество микросекунд с начала эпохи Unix
  • метод time.Time.UnixNano,
    который возвращает количество наносекунд с начала эпохи Unix
  • функцию time.Now,
    которая возвращает текущее локальное время