2009-04-16 4 views
1

Calendar.getInstance(TimeZone.getTimeZone("GMT+1")).get(Calendar.HOUR_OF_DAY) - это час «медленный», (возможно, потому, что он не определяет переход на летнее время +1 час.) В J2SE существует много доступных часовых поясов (Европа/Будапешт тоже, и он отлично работает), но в J2ME есть только GTM и UTC.
Как я могу получить «правильный» час?(Календарь) Час дня не возвращает нужный час

ответ

1

Я попытался с TimeZone.getDefault() на мой телефон, и он работал :) (но на эмуляторе час был «медленный» на 2 часа: S)

3

Вы запросили «GMT + 1», который является фиксированным часовой пояс - не применяется переход на летнее время. Если вам нужно применить переход на летнее время, и J2ME не будет предоставлять какие-либо временные зоны DST, вам придется самому разработать эту логику :(

(Другими словами, похоже, что J2ME ведет себя правильно, но он не поддерживает функцию, в которой вы хотите.)

+0

ли не * все * временные зоны фиксированной? Мы просто меняем часовые пояса в течение лета, мы не перемещаем время в этих часовых поясах ... – BenAlabaster

+0

@balabaster: Нет, мы не меняем часовой пояс. Наш часовой пояс меняет свое UTC-смещение, вот и все. Например, я нахожусь в часовом поясе с Olsen ID «Европа/Лондон». То есть UTC + 0 зимой, а UTC + 1 летом. –

+0

(По крайней мере, в каждом разумном часовом поясе API, который я использовал :) –

1

У меня была эта проблема с совершенно другим приложением - это было мобильное приложение, но оказалось, что это парадигма с моим мышлением, а не программная проблема вообще ... Интересно, является ли это той же проблемой, что и у вас.

В настоящее время Англия находится в британском летнем времени, поэтому люди часто считают GMT временем, которое сейчас находится в Англии ... что не всегда , BST - GMT + 1, что (в зависимости от вашего местоположения и того, используете ли вы летнее сбережение) может вызвать проблемы. Это также повлияет на дату, если GMT на следующий день.

Например, я сейчас в Торонто, который в настоящее время является GMT-4, но отстает от Лондона на 5 часов, что вызвало у меня большую путаницу. Я думаю, что добавление к путанице в том, что я от Великобритании, поэтому я автоматически думаю о времени как GMT-5, что не всегда так. Лондонское время в настоящее время GMT + 1, и мы - Лондон-5, который на самом деле является GMT-4.

Смежные вопросы