Как в Windows обновить информацию о зоне?
в настройках Даты и времени? ) отключить автоматическую таймзону и задать ее вручную
Запущенная программа не видит этого изменения
а ты смотрел исходник как го определяет таймзону?
а, я понял почему Windows Timezone +3 t = time.Time{} t.Zone() -- +3 Windows Timezone +10 t.Zone() -- +3 а если сделать после смены таймзоны в винде t = time.Time{} и t.Zone() то какая зона будет?
Новая
Zone computes the time zone in effect at time t, returning the abbreviated name of the zone (such as "CET") and its offset in seconds east of UTC. то если ты уже получил время при зоне в +3, то другую таймзону от этого времени ты не получишь
ну то есть проблема решена? )
Я и от другого уже не получу
Нет. Мне надо и до, и после.
ну стандартным методом не получишь или надо дальше рыскать в доке единственное что приходит на ум, это взять UTC, отнять от твоей даты и анализировать что будет )
Он любой новый time.Now() сделает в той зоне, в которой сделал первый раз. Мне ничего UTC не даст
ты же ответил по-другому
Да я думал, что про запуск заново приложения
нет, про новую дату
Уже понял. Нет, в новой дате он сделает старую локаль
https://cs.opensource.google/go/go/+/refs/tags/go1.17.7:src/time/zoneinfo.go;drc=refs%2Ftags%2Fgo1.17.7;l=84 Вот этот дурацкий Once
вот теперь я точно убежден что синглтон это антипаттерн
Да ппц. Там на самом бы деле функцию "рефреш"
Видимо, никто не рассматривал вариант, что локальную таймзону надо будет менять. Собственно, а при каком кейсе такая ситуация могла возникнуть?
Я еду в авто и таймзона меняется. Я иду на судне и таймзона меняется.
сервер едет? или клиент едет? если клиент - то посылай таймзону от клиента на сервер, а на севрере онли utc
толстый клиент? десктопная программа?
Да какое-нибудь управление машиной.
зачем ей таймзона? utc жеж
А сервер с приложением тоже с собой везете? Сами же понимаете, что кейс очень редкий
Показывать мне на голубом экране? По сети синхронизировалось устрйство а программа нет
показывать на экране это клиент, АГА
Ну для него можно попробовать написать костыль, который будет каким-то образом определять текущую таймзону, и потом везде время переводить
Объясните зачем на сервере иметь таймзону?
а сохраненные данные тоже меняются?
Обсуждают сегодня