Я действительно думаю, что значения Date в js намного лучше, чем, скажем, объекты C # DateTime.У объектов C # DateTime есть свойство Kind, но нет строгого базового часового пояса как такового, и преобразования часового пояса трудно отследить, если вы выполняете преобразование между двумя не UTC и нелокальными временами.В js все значения Date имеют базовое значение UTC, которое передается и известно независимо от выполняемых вами преобразований оффлайн или часовых поясов.Моя самая большая жалоба на объект Date - это количество неопределенного поведения, которое разработчики браузера решили включить, что может спутать людей, которые атакуют даты в js методом проб и ошибок, чем чтением спецификации.Использование чего-то вроде iso8601.js решает эту проблему, определяя единственную реализацию объекта Date.
По умолчанию в спецификации говорится, что вы можете создавать даты в расширенном формате даты ISO 8601, например
var someDate = new Date('2010-12-12T12:00Z');
Таким образом, вы можете определить точное время UTC таким образом.
Если вы хотите передать значение Date обратно на сервер, вы должны позвонить
someDate.toISOString();
или, если вы предпочитаете работать с меткой времени в миллисекундах (количество миллисекунд с 1 января 1970 года по Гринвичу))
someDate.getTime();
ISO 8601 является стандартом.Вы не можете быть смущены тем, что означает строка даты, если вы включите смещение даты.Для вас как для разработчика это означает, что вам никогда не придется самостоятельно разбираться с местным временем .Значения местного времени существуют исключительно для удобства пользователя, а значения даты по умолчанию отображаются в их местном времени.Все манипуляции с местным временем позволяют отображать что-то разумное для пользователя и преобразовывать строки из пользовательского ввода.Хорошей практикой является преобразование в UTC, как только вы сможете, и объект js Date делает это довольно тривиальным.
С другой стороны, у нас не так много возможностей для принудительного установки часового пояса или локали для клиента (что мне известно), что может раздражать настройки конкретного веб-сайта, но я полагаю, причина этого в том, что к пользовательской конфигурации не следует прикасаться.
Итак, короче говоря, причинадля манипуляций с часовыми поясами не так уж много поддержки, потому что вы просто не хотите этого делать.