Конфликт часовых поясов в «Вставить дату/время»

Привет!

Когда я использую иконку «вставить дату/время» для вставки даты, кажется, возникает конфликт между временем в Осло (GMT+1) и ETC/GMT+1. Это ошибка или на самом деле есть разница между GMT+1 и ETC/GMT+1?

Вот живой пример: Monday, November 8, 2021 7:00 PM

Я думал, что время должно быть одинаковым?

2 лайка

Боюсь, что техническая причина здесь довольно запутанная — вы можете прочитать об этом по адресу Moment Timezone | Docs

Совместимость с POSIX требует инвертирования смещений. Следовательно, Etc/GMT-X будет иметь смещение +X, а Etc/GMT+X — смещение -X. Это результат Базы данных часовых поясов IANA, а не произвольный выбор Moment.js. Поэтому предпочтительнее использовать идентификаторы на основе локалей, а не фиксированных смещений.

Таким образом, в базе данных часовых поясов IANA Europe/Oslo в настоящее время эквивалентно Etc/GMT-1.

Monday, November 8, 2021 7:00 PM

Мне интересно, можем ли мы или должны ли мы ввести собственные алиасы часовых поясов UTC+1, UTC+2 (без префикса Etc/). :thinking: (cc @j.jaffeux)

4 лайка

Если это несложно, я, вероятно, предложил бы также удалить пояса Etc. За исключением некоторых экземпляров Discourse, связанных с POSIX или временем, эти пояса будут в значительной степени нерелевантными и часто запутанными, если пользователь хочет указать смещение, а не локаль. Они появятся в списке перед GMT/UTC, и обычный пользователь не будет знать, что означает префикс Etc.

Если они не будут удалены, префикс должен быть включен в отображение вставленного времени. Возможно, даже с каким-то указанием на то, что это может быть не тем, чего ожидает пользователь, например, Etc/GMT+1 (= GMT-1).

3 лайка

@david спасибо за ответ и ссылку! Так что, исходя из того, что я пока пришёл к выводу как к решению, лучше избегать использования ETC/GMT и вместо этого использовать название города.

2 лайка