Вам захочется быть очень осторожным в этом. Когда вы берете значение времени на стороне сервера, которое является традиционным значением «количество секунд (или миллисекунд) с момента границы эпохи», а затем превращаете его в некий объект «Дата», то происходит преобразование в часовой пояс, соответствующий локаль контекста.
Проблема возникает, когда у вас есть сервер, расположенный в Чикаго, и кто-то на Гавайях использует ваш сайт, скажем, после вечеринки & mdash; без сомнения, одно из этих "луау" дел, в комплекте с жареной свиньей и танцующими девочками с травой, редкий вечер под теплым тропическим небом, экзотические цветы, пахнущие океанскими бризами & mdash; и уже поздно Боже мой, уже почти полночь! Что мама подумает, когда я напишу ей о вечеринке?
Наш участник вечеринки садится в 23:30, чтобы использовать ваш сайт. Теперь, конечно, находясь значительно восточнее Гавайев, ваш сервер считает, что сейчас 5:30 утра, а дата на один день позже даты, которую наш участник вечеринки записывает в своей быстрой заметке для мамы. Таким образом, ваш сервер записывает значение времени на веб-страницу, как описано в ответах здесь, и & mdash; правильно & mdash; местное время на Гавайях отображается на странице в гостиничном номере нашего тусовщика.
Проблема заключается в следующем: если это местное время вернется в ваше приложение из какого-либо поля формы, и ваше приложение обрабатывает его как местное время в Чикаго , то ваш сайт будет получить вчерашнюю дату. В зависимости от вашего приложения, это либо ОК, либо не хорошо - дело в том, что вы должны отслеживать , где дата (выраженная в обычной календарной нотации) происходит от визы, где дата используется .
Конечно, у вас может быть противоположная проблема. То есть, если ваш сервер всегда отображает даты в своем локальном часовом поясе, то пользователи в других частях мира увидят запутанные (явно неправильные) значения даты и времени, поэтому интерфейс должен четко понимать, что эти значения означают. Проблемы становятся важными, когда ваш сайт предоставляет услуги с расписанием. Если возможно запланировать операции, важно, чтобы интерфейс держал вещи на уровне, чтобы «30 апреля в 22:00» означало либо дату и время на сервере , либо эти дату и время в локали из которого был составлен график. Что бы это ни было, вы должны быть осторожны, чтобы все было согласованно.