Например, используя элемент управления датой и временем, пользователь выбирает дату и время, так что строковое представление выглядит следующим образом:
"6-25-2012 12:00:00 PM"
Так получилось, что этот пользователь находится в часовом поясе EST. Строка передается на сервер, который переводит его в объект .NET DateTime, а затем сохраняет его в SQL Server в столбце datetime.
Когда дата возвращается позже в браузер, ее необходимо преобразовать обратно в дату, однако, когда указанная строка будет отправлена на дату, она теряет 4 часа. Я считаю, что это связано с тем, что, когда вы не указываете часовой пояс при создании даты JavaScript, он по умолчанию использует локальное время, и поскольку EST составляет -400 по Гринвичу, он вычитает 4 часа с 12 часов вечера, даже если этот 12pm должен был быть указан как EST, когда пользователь выбрал его на машине в часовом поясе EST.
Ясно, что что-то должно быть добавлено к исходной строке datetime до того, как оно будет передано на сервер, чтобы быть сохраненным. Каков рекомендуемый способ сделать это?