Я использую 12.14.1 и мне кажется, узел игнорирует TZ
env. во многих случаях переменная:
$ TZ=GMT-4 node -e 'console.log(new Date().getTimezoneOffset(), new Date().toString())'
-120 Mon Mar 30 2020 10:10:12 GMT+0200 (Central European Summer Time)
Это совершенно неверно. Либо все должно быть в GMT + 4 (да, +
, странная вещь POSIX), либо возвращаемое время не должно совпадать с моим местным временем (то же время в часовом поясе GMT + 2 и GMT + 4 - нонсенс).
Время в разных часовых поясах должно отличаться при преобразовании в один и тот же часовой пояс для печати:
$ TZ=GMT-2 node -e 'console.log(new Date().getTimezoneOffset(), new Date().toString())'
-120 Mon Mar 30 2020 10:10:14 GMT+0200 (Central European Summer Time)
Тем не менее, узел непреклонен, он одинаков.
Как надежно и кроссплатформенно ( Linux, Windows, Ma c) установить произвольный (не только UT C и его эквиваленты) часовой пояс процесса узла?
Редактировать:
Вот пример один правильный вариант, как он может себя вести:
$ TZ=GMT-4 date
Po 30. března 2020, 12:06:04 GMT
$ TZ=GMT-2 date
Po 30. března 2020, 10:06:09 GMT
При преобразовании в одну и ту же тимзону время в разных часовых поясах должно различаться (GMT + 4 и GMT + 2 отличаются на 2 часа).