Определить часовой пояс на основе смещения и смещения DST - PullRequest
2 голосов
/ 13 апреля 2011

Мне было интересно, есть ли способ построить объект Java TimeZone, учитывая 2 смещения часов в час в виде целых чисел.Например, если бы мне дали (-5, -6), то я хотел бы иметь возможность интерпретировать это как EST время.Кроме того, как только я узнаю, какому местоположению это соответствует, я хочу узнать, находится ли данная дата в этом часовом поясе в летнее время или нет.В идеале,

public static TimeZone getTimeZone(int offsetHrs, int dstOffsetHrs);
...
TimeZone tz = getTimeZone(-5, -6);
if(tz.isDST(currentDate)) {
    //Do stuff...
}

И затем, если offsetHours и dstOffsetHrs одинаковы, тогда мы игнорируем dst .... Не спрашивайте почему, это требование, которое мне нужно подтвердить, можно выполнить, илииначе мне нужно посмотреть на некоторые важные изменения в другом месте.
Заранее спасибо

1 Ответ

2 голосов
/ 13 апреля 2011

Нет - может быть несколько часовых поясов с одинаковыми смещениями, но с переходом на разные даты.Конечно, если вы счастливы принять эту потенциальную двусмысленность, это не должно быть невозможным ...

Например, используя Joda DateTimeZone, вы, вероятно, захотите начатьс определенной фиксированной датой (например, 1 января 2010 г.) и просмотрите следующие несколько переходов каждого часового пояса - если часовой пояс имеет переходов - чтобы выяснить, каковы его стандартные / дневные смещения.Затем вы можете использовать isStandardOffset, чтобы определить, находится ли конкретный момент в летнее или стандартное время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...