Получить полный формат смещения UTC на Голанге - PullRequest
0 голосов
/ 06 февраля 2019

Мне нужно получить смещение UTC для местоположения.У меня проблемы с несоответствием результатов разных значений.Все, что мне нужно получить, это значения в формате +HHMM (например, +0100 для "Европа / Рим").

func main() {
    loc, _:= time.LoadLocation("Asia/Kathmandu")
    offset, others:= time.Now().In(loc).Zone()
    fmt.Println(offset, others)
}

Детская площадка

ЧтоЯ получаю:

  • "Азия / Катманду": +0545 (подходит)
  • "Азия / Ho_Chi_Minh": +07 (должно быть +0700)
  • "Америка / Феникс": MST (должно быть -0700)
  • "Европа / Рим": CET (должно быть +0100)

Справочные названия часовых поясов стран

Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 06 февраля 2019

Используемый вами метод Zone() работает точно так, как рекламируется .

Zone вычисляет часовой пояс, действующий в момент времени t, возвращая сокращенное названиезона (например, «CET») и ее смещение в секундах к востоку от UTC.

Лучшим подходом для вас будет использование метода Format.Что-то вроде:

zone := time.Now().In(loc).Format("-0700")

Конечно, помните: даже это не будет на 100% непротиворечивым из-за перехода на летнее время.

...