Часовые пояса и переход на летнее время - это кошмар. Вы, конечно, не должны сами решать эту задачу. Пусть Joda-Time делает тяжелый подъем.
См. этот ответ на аналогичный вопрос, Используя время Джоды, чтобы получить смещение UTC для заданной даты и часовой пояс , Класс DateTimeZone предлагает метод getOffset () .
Пример исходного кода в Joda-Time 2.3 в Java 7 ...
// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.
org.joda.time.DateTimeZone californiaTimeZone = org.joda.time.DateTimeZone.forID("America/Los_Angeles");
org.joda.time.DateTime now = new org.joda.time.DateTime(californiaTimeZone);
int millisecondOffsetToAddToUtcToGetLocalTime = californiaTimeZone.getOffset( now );
System.out.println( "millisecondOffsetToAddToUtcToGetLocalTime: " + millisecondOffsetToAddToUtcToGetLocalTime );
// Note the casting to doubles to avoid integer truncation. Time zone offsets are NOT always whole hours.
System.out.println( "Offset in decimal hours: " + (double)millisecondOffsetToAddToUtcToGetLocalTime / 1000d / 60d / 60d );
При запуске в 2013-11-20T01: 03: 56.464-08: 00 ...
millisecondOffsetToAddToUtcToGetLocalTime: -28800000
millisecondOffsetToAddToUtcToGetLocalTime in hours: -8.0
ВАЖНО Этот формат номера -8.0
неверен для смещения. Должно быть либо:
-08:00
с двоеточием и двузначными цифрами (с добавлением начального нуля). -08
с начальным нулем. Используйте селектор «значение атрибута начинается с», например:
$("textarea[name^='dvSummary']")
См. Документацию здесь https://api.jquery.com/attribute-starts-with-selector [111 ] для большего количества примеров.