Работать с часовыми поясами довольно сложно. Хороший способ справиться с разницей между поясами — выделить в системе одну зону в качестве референтной и в случае необходимости конвертировать другие значения в данный часовой пояс. В данной инструкции будет показано, как конвертиртировать значение одного часового пояса в другой.

Как конвертировать один часовой пояс в другой в Golang?

1. Создайте файл timezones.go со следующим содержимым:

Форум Гоферов

Мы работаем над форумом для программистов на Golang. Очень нужны модераторы которые хотят помочь с ответами для новичков и помочь в развитии Go-сообщества.

Go на Форум

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК Go в Telegram

2. Запустите код через go run timezones.go;
3. Посмотрите на результат в терминале:

Тип Time предоставляет метод In, что использует указатель для time.Location. Возвращаемый Time является конвертированным оригинальным значением данного часового пояса. Обратите внимание, что экземпляр Time считается неизменяемым, поэтому методы в результате изменения создают новый экземпляр Time.

На заметку: Пакет time обращается к базе данных IANA Time Zone как к источнику локаций. Функция LoadLocation ищет директорию или файл ZIP из переменной среды ZONEINFO. Если ничего не найдено, обыскиваются известные локации инсталяции на системах UNIX. В конечном итоге идет поиск по $GOROOT/lib/time/zoneinfo.zip.

Понравилась статья?

Поддержи наш проект, чтобы мы могли создать больше хорошего контента!