РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
803 of 1593 menu

Тип time.Location

Тип time.Location представляет собой структуру, которая хранит информацию о часовом поясе, включая его название, смещение относительно UTC и правила перехода на летнее время. Этот тип используется во многих функциях пакета time для корректного отображения времени в конкретном регионе.

Создание Location

Существует несколько способов получить объект time.Location. Рассмотрим основные из них.

package main import ( "fmt" "time" ) func main() { // Получение локального часового пояса системы loc := time.Local fmt.Println(loc) // Получение UTC utc := time.UTC fmt.Println(utc) }

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

"Local" "UTC"

Загрузка Location по имени

Для загрузки часового пояса по его строковому идентификатору используется функция time.LoadLocation:

package main import ( "fmt" "time" ) func main() { // Загрузка часового пояса по имени loc, err := time.LoadLocation("America/New_York") if err != nil { fmt.Println("Error:", err) return } fmt.Println(loc) }

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

"America/New_York"

Создание фиксированного Location

Для создания часового пояса с фиксированным смещением от UTC используется функция time.FixedZone:

package main import ( "fmt" "time" ) func main() { // Создание часового пояса со смещением +3 часа loc := time.FixedZone("MSK", 3*60*60) fmt.Println(loc) }

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

"MSK"

Получение информации из Location

У типа time.Location есть метод String, который возвращает название часового пояса. Также с помощью метода time.Time.Zone можно получить информацию о зоне для конкретного момента времени:

package main import ( "fmt" "time" ) func main() { // Создание времени в конкретном часовом поясе loc, _ := time.LoadLocation("Europe/London") t := time.Date(2026, 9, 4, 12, 0, 0, 0, loc) // Получение названия зоны и смещения name, offset := t.Zone() fmt.Println("Zone:", name) fmt.Println("Offset in seconds:", offset) fmt.Println("Offset in hours:", offset/3600) }

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

"Zone: BST" "Offset in seconds: 3600" "Offset in hours: 1"

Преобразование времени между зонами

Объект time.Location активно используется для конвертации времени из одного часового пояса в другой с помощью метода time.Time.In:

package main import ( "fmt" "time" ) func main() { // Создание времени в UTC t := time.Date(2026, 9, 4, 12, 0, 0, 0, time.UTC) fmt.Println("UTC:", t) // Загрузка часового пояса loc, _ := time.LoadLocation("Asia/Tokyo") // Преобразование в токийское время tokyo := t.In(loc) fmt.Println("Tokyo:", tokyo) }

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

"UTC: 2026-09-04 12:00:00 +0000 UTC" "Tokyo: 2026-09-04 21:00:00 +0900 JST"

Проверка на UTC

Метод time.Time.Location возвращает часовой пояс, связанный с моментом времени. Сравнивая полученный объект с time.UTC, можно проверить, находится ли время в UTC:

package main import ( "fmt" "time" ) func main() { t1 := time.Date(2026, 9, 4, 12, 0, 0, 0, time.UTC) t2 := time.Date(2026, 9, 4, 12, 0, 0, 0, time.Local) // Проверка, является ли время UTC fmt.Println(t1.Location() == time.UTC) fmt.Println(t2.Location() == time.UTC) }

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

"true" "false"

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

  • функцию time.LoadLocation,
    которая загружает часовой пояс по его имени
  • функцию time.FixedZone,
    которая создает часовой пояс с фиксированным смещением
  • метод time.Time.In,
    который преобразует время в указанный часовой пояс
  • метод time.Time.Zone,
    который возвращает информацию о зоне для конкретного времени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить