(Календарь) Час дня не возвращает нужный час - PullRequest
1 голос
/ 16 апреля 2009

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

Ответы [ 3 ]

3 голосов
/ 16 апреля 2009

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

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

1 голос
/ 22 апреля 2009

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

1 голос
/ 16 апреля 2009

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

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

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

...