Конвертировать дату в местном часовом поясе с помощью JavaScript

В моем слое JavaScript я получаюtimestamp который вуниверсальное глобальное время формат - и мне нужно преобразовать его дляместный часовой пояс, Я знаю, что часовой пояс можно преобразовать с помощьюDateFormat на стороне Java, но я ищу надежный способ сделать это, используя только JavaScript.

Любые предложения будут очень признательны.

 sandy26 дек. 2012 г., 14:02
Я хочу, чтобы время менялось, а не формат даты.
 Rajagopal 웃26 дек. 2012 г., 13:59
Посмотрите на эти две ссылки, которые будут обсуждать больше о преобразовании даты в конкретную культуруjqfaq.com/how-to-parse-a-date-string-disregarding-time-zones   а такжеjqfaq.com/...

Ответы на вопрос(1)

использованиеgetTimezoneOffset ()

Получить локальное смещение UTC и преобразовать в мс

localOffset = d.getTimezoneOffset() * 60000;

Обратите внимание, что отрицательное возвращаемое значение из getTimezoneOffset () указывает, что текущее местоположение опережает UTC, в то время как положительное значение указывает, что местоположение находится за UTC.

Получите текущее время UTC, добавив смещение местного часового пояса к местному времени. (localTime вы получите от getTime ())

// obtain UTC time in msec
utc = localTime + localOffset;

Как только вы получите время UTC, получите город назначения 's Смещение UTC в часах, преобразование его в миллисекунды и добавление его к времени UTC.

// obtain and add destination's UTC time offset
// for example, Mumbai(India) 
// which is UTC + 5.5 hours
offset = 5.5;   
mumbai = utc + (3600000*offset);

На данный момент переменная Мумбаи содержит местное время в городе Мумбаи, Индия. Это местное время выражается числом миллисекунд с 1 января 1970 года. Очевидно, это неt очень читабельно, поэтому нам нужно сделать еще несколько вычислений.

Измените значение времени, вычисленное на предыдущем шаге, на удобочитаемую строку даты / времени, инициализируя с ним новый объект Date () и вызывая объект:s toLocaleString () метод.

// convert msec value to date string
nd = new Date(mumbai); 
document.writeln("Mumbai time is " + nd.toLocaleString() + "<br>");

А вы'готово!

 sandy26 дек. 2012 г., 14:53
Получение смещения не является надежным с использованием вышеуказанного метода. Это может игнорировать переход на летнее время. У меня уже есть часовой пояс клиента и отметка времени в формате UTC. Теперь я должен преобразовать его в рассчитанный часовой пояс.

Ваш ответ на вопрос