Подтвердить что ты не робот

Как получить текущую временную метку в других часовых поясах в Голанге?

Мне нужно получить текущее время в разных часовых поясах.

В настоящее время я знаю, что мы можем сделать следующее:

t := time.Now()
fmt.Println("Location:", t.Location(), ":Time:", t)
utc, err := time.LoadLocation("America/New_York")
if err != nil {
    fmt.Println("err: ", err.Error())
}
fmt.Println("Location:", utc, ":Time:", t.In(utc))

Имя LoadLocation считается именем местоположения, соответствующим файлу в базе данных IANA Time Zone, например "America/New_York".

Существует ли более простой способ получить текущее время, если указано название страны или смещение по часовой стрелке, например +530 для Индии?

Изменить: я также хочу поддерживать дневную экономию.

4b9b3361

Ответ 1

Нет, это лучший способ. Вы можете создать свой собственный Location с помощью FixedZone и использовать это настраиваемое местоположение.

FixedZone возвращает местоположение, которое всегда использует данное имя зоны и смещение (секунды к востоку от UTC).

Ответ 2

//init the loc
loc, _ := time.LoadLocation("Asia/Shanghai")

//set timezone,  
now := time.Now().In(loc)