Метод time.Time.Local

Метод Local преобразует текущее значение time.Time в локальный часовой пояс системы. Он возвращает новую временную метку с тем же моментом времени, но с местным смещением. Этот метод полезен для отображения времени в удобном для пользователя формате.

Синтаксис

got.Local()

Пример

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

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  t := time.Date(2026, time.September, 4, 15, 30, 0, 0, time.UTC)
  localTime := t.Local()
  fmt.Println("UTC time:", t)
  fmt.Println("Local time:", localTime)
}

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

go"UTC time: 2026-09-04 15:30:00 +0000 UTC"
"Local time: 2026-09-04 18:30:00 +0300 MSK"

В этом примере время было сдвинуто на +3 часа относительно UTC, так как локальный часовой пояс системы установлен на MSK.

Пример

Получим текущее время в локальном поясе и сравним с UTC:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  now := time.Now()
  utcTime := now.UTC()
  localTime := now.Local()
  fmt.Println("Current local time:", localTime)
  fmt.Println("Same moment in UTC:", utcTime)
  fmt.Println("Are they equal?", localTime.Equal(utcTime))
}

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

go"Current local time: 2026-09-04 21:45:12.345678 +0300 MSK"
"Same moment in UTC: 2026-09-04 18:45:12.345678 +0000 UTC"
"Are they equal? true"

Несмотря на разные часовые пояса, метод Equal возвращает true, так как оба значения представляют один и тот же момент времени.

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

  • метод time.Time.UTC,
    который преобразует время в UTC
  • метод time.Time.In,
    который преобразует время в указанный часовой пояс
  • функцию time.Now,
    которая возвращает текущее локальное время
  • функцию time.LoadLocation,
    которая загружает информацию о часовом поясе