Правильный способ преобразования смещения часового пояса в минутах в формат 24 часа

#go

#Вперед

Вопрос:

Я получаю смещение часового пояса в минутах, т.Е.. 240 (представляющий GMT-4) и необходимо преобразовать его в -0800 или -08:00. Как я могу сделать это правильно в Go lang?

Ответ №1:

Кажется, это делает это:

 package main

import (
   "fmt"
   "time"
)

func zone(s string, d time.Duration) *time.Location {
   f := d.Seconds()
   return time.FixedZone(s, int(f))
}

func main() {
   z := zone("GMT-4", -240 * time.Minute)
   t := time.Date(2021, 3, 30, 19, 22, 53, 0, z)
   fmt.Println(t) // 2021-03-30 19:22:53 -0400 GMT-4
}
 

https://golang.org/pkg/time#FixedZone

Комментарии:

1. Я пришел к тому же выводу, мне не понравилось, что с фиксированной зоной связано произвольное имя, но я на самом деле полностью его игнорирую. Ну что ж, в любом случае это был странный крайний случай.