Как получить формат времени текущего TimeZone? - PullRequest
2 голосов
/ 28 октября 2009

Я получаю текущий часовой пояс как,

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");

Я использую API Java1.4 и RIM, в Java 1.5 вы можете написать как «гггг-ММ-дд ЧЧ: мм: сс 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 час вперед / назад для часовых поясов, использующих летнее время. (т.е. для часовых поясов, использующих DST, устройство Blackberry не использует DST, когда я использую getOffset (..))

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

Ответы [ 2 ]

0 голосов
/ 28 октября 2009

Чтобы быть более конкретным, попробуйте это:

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

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

0 голосов
/ 28 октября 2009

Как насчет этого

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

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

...