Метод time.Time.Local
Метод Local преобразует текущее значение time.Time
в локальный часовой пояс системы. Он возвращает новую временную метку
с тем же моментом времени, но с местным смещением.
Этот метод полезен для отображения времени в удобном для пользователя формате.
Синтаксис
t.Local()
Пример
Давайте преобразуем время в локальный часовой пояс:
package 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)
}
Результат выполнения кода:
"UTC time: 2026-09-04 15:30:00 +0000 UTC"
"Local time: 2026-09-04 18:30:00 +0300 MSK"
В этом примере время было сдвинуто на +3 часа относительно UTC, так как локальный часовой пояс системы установлен на MSK.
Пример
Получим текущее время в локальном поясе и сравним с UTC:
package 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))
}
Результат выполнения кода:
"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,
которая загружает информацию о часовом поясе