2009-10-28 10 views
2

я получаю текущий часовой пояс, как,Как получить формат времени текущего часового пояса?

String defaultTimeZone = ""+TimeZone.getDefault(); 

Теперь я хочу, чтобы получить свое время, на которое я использую,

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); 

для например, если currentTimeZone = «Calcutta», то его время +0530, который будет походить,

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss +0530"); 

Я использую Java1.4 & RIM API, в Java 1.5 и можно записать как "YYYY-MM-дД ЧЧ: мм: сс Z", чтобы получить "+0530"

Итак, как это сделать в Java 1.4?


Я проверил, используя,

boolean isDayLightSavings = _timeZone.useDaylightTime(); 
if(isDayLightSavings) 
{    
     gmtOffset = _timeZone.getOffset(1, _calendar.get(Calendar.YEAR), _calendar.get(Calendar.MONTH), _calendar.get(Calendar.DATE), _calendar.get(Calendar.DAY_OF_WEEK), _calendar.get(Calendar.MILLISECOND)); 
} 

, но такой же результат, как его ближайшие 1 час вперед/назад для TimeZones, который использует DST. (т. Е. Для часовых поясов с использованием DST, устройство Blackberry не использует DST, когда я использую getOffset (..))

Так что я должен включить DST в устройстве BB. Если да, то как это сделать?

ответ

0

Как об этом

Calendar cal = Calendar.getInstance(); 
return cal.getTimeZone(); 

григорианский календарь очень удобно для всех вещей дата/время.

+0

Спасибо, но «GreogorianCalendar» недоступен в Blackberry JDE 4.5.0 API docs. – Shreyas

+0

Ну, вы можете вызвать переменную Календарь, общая идея такая же, как и выше. – Zoidberg

+0

Да, используя «Календарь», я получил его работу. Только проблема заключается в том, что TimeZones используют DST, когда я использую getOffset(). Pls ссылается на мой комментарий выше. – Shreyas

0

Чтобы быть немного более конкретным, попробуйте следующее:

Календарь кал = Calendar.getInstance();
TimeZone timeZone = cal.getTimeZone();
int rawOffset = timeZone.getRawOffset();

Необработанное смещение в миллисекундах. Разделите на 3 600 000, чтобы получить смещение в часах.

+0

Я решил, что я дам JavaDocs выполнить оставшуюся часть работы. – Zoidberg

+0

Привет, Крис. Работает. Но getRawOffset() не рассматривает DayLight Savings Time (DST) и getOffset(). , если я использую getOffset, тогда результат наступает 1 час вперед/назад для TimeZones, который использует DST. (вкратце для TimeZones, использующих DST, устройство Blackberry не использует DST, когда я использую getOffset (..)) Так что я думаю, что дневная экономия на отключенном устройстве Blackberry. знаете ли вы, как включить его? любые настройки, которые необходимо выполнить?Как решить эту проблему для DST? – Shreyas

+1

(например, для «Adelaide» его время в устройстве Blackberry - GMT +09: 30, и если я использую getOffset(), то его ближайшие +10: 30) – Shreyas

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