Метод time.Time.UTC

Метод Time.UTC возвращает копию времени, преобразованную к часовому поясу UTC. В первый параметр (приемник) мы передаем значение типа time.Time, которое хотим преобразовать. Метод возвращает новое значение time.Time с тем же моментом времени, но в часовом поясе UTC. Если исходное время уже находится в UTC, метод возвращает его копию без изменений.

Синтаксис

got.UTC()

Пример

Давайте преобразуем текущее локальное время в UTC:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  now := time.Now()
  fmt.Println("Local time:", now)
  fmt.Println("Location:", now.Location())

  utcTime := now.UTC()
  fmt.Println("UTC time:", utcTime)
  fmt.Println("Location:", utcTime.Location())
}

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

go"Local time: 2026-09-04 15:30:45.123456789 +0300 MSK"
"Location: Local"
"UTC time: 2026-09-04 12:30:45.123456789 +0000 UTC"
"Location: UTC"

Пример

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

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  loc, _ := time.LoadLocation("America/New_York")
  t := time.Date(2026, time.September, 4, 15, 30, 0, 0, loc)
  fmt.Println("Original time:", t)
  fmt.Println("Location:", t.Location())

  utcTime := t.UTC()
  fmt.Println("UTC time:", utcTime)
  fmt.Println("Location:", utcTime.Location())
}

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

go"Original time: 2026-09-04 15:30:00 -0400 EDT"
"Location: America/New_York"
"UTC time: 2026-09-04 19:30:00 +0000 UTC"
"Location: UTC"

Пример

Давайте проверим, что метод возвращает ту же самую точку во времени:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  loc, _ := time.LoadLocation("Asia/Tokyo")
  t := time.Date(2026, time.September, 4, 10, 0, 0, 0, loc)
  utcTime := t.UTC()

  fmt.Println("Original time:", t)
  fmt.Println("UTC time:", utcTime)
  fmt.Println("Are they equal:", t.Equal(utcTime))

  unixTimestamp := t.Unix()
  utcTimestamp := utcTime.Unix()
  fmt.Println("Timestamps equal:", unixTimestamp == utcTimestamp)
}

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

go"Original time: 2026-09-04 10:00:00 +0900 JST"
"UTC time: 2026-09-04 01:00:00 +0000 UTC"
"Are they equal: true"
"Timestamps equal: true"

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

  • метод Time.Local,
    который преобразует время к локальному часовому поясу
  • метод Time.In,
    который преобразует время к указанному часовому поясу
  • константу time.UTC,
    которая представляет глобальный часовой пояс UTC
  • метод Time.Location,
    который возвращает часовой пояс времени