Функция time.FixedZone

Функция time.FixedZone создает объект time.Location, представляющий часовой пояс с фиксированным смещением от UTC. В первый параметр передается имя часового пояса (например, "MSK" или "EST"), во второй параметр передается смещение в секундах от UTC. Положительное значение смещения соответствует восточному полушарию, отрицательное - западному.

Синтаксис

gotime.FixedZone(name, offset)

Пример

Создадим часовой пояс для Москвы (MSK) со смещением +3 часа от UTC:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  loc := time.FixedZone("MSK", 3*60*60)
  now := time.Now().In(loc)
  fmt.Println(now)
}

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

go"2026-09-04 15:30:45 +0300 MSK"

Пример

Используем созданный часовой пояс для форматирования времени в определенном стиле:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  loc := time.FixedZone("EST", -5*60*60)
  t := time.Date(2026, time.September, 4, 12, 0, 0, 0, loc)
  fmt.Println(t.Format(time.RFC1123))
}

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

go"Fri, 04 Sep 2026 12:00:00 EST"

Пример

Сравним время в разных фиксированных часовых поясах:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  msk := time.FixedZone("MSK", 3*60*60)
  ny := time.FixedZone("NY", -4*60*60)
  utc := time.Now().UTC()
  t1 := utc.In(msk)
  t2 := utc.In(ny)
  fmt.Println("MSK:", t1.Format("15:04"))
  fmt.Println("NY:", t2.Format("15:04"))
}

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

go"MSK: 18:30"
"NY: 11:30"

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

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