для установки TImezone
:
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
Мой Guess ... если вы живете в + 30 минут часовой пояс GMT и, если не указано другое одно, ваш форматировщик подберет ваш текущий, так он считает, 0 часов, как по Гринвичу и вы находитесь в GMT + 30 мин, она выводит + 30 минут ...
Чтобы получить часовой пояс из пользовательского текущего места вы можете использовать:
TimeZone tz = TimeZone.getDefault();
System.out.println("TimeZone "+tz.getDisplayName(false, TimeZone.SHORT)+" Timezon id :: " +tz.getID());
в n вы можете установить часовой пояс в формате даты.
он возвратит вас часовой пояс, как «IST
»
Также вы можете попробовать следующий код, чтобы найти GMT смещение часового пояса:
public String getCurrentTimezoneOffset() {
TimeZone tz = TimeZone.getDefault();
Calendar cal = GregorianCalendar.getInstance(tz);
int offsetInMillis = tz.getOffset(cal.getTimeInMillis());
String offset = String.format("%02d:%02d", Math.abs(offsetInMillis/3600000), Math.abs((offsetInMillis/60000) % 60));
offset = "GMT"+(offsetInMillis >= 0 ? "+" : "-") + offset;
return offset;
}
он возвращает часовой пояс, как: GMT + 5:30 этот формат
С помощью часового пояса вы можете найти точное время во всех устройствах ..
см. Это также: https://developer.android.com/reference/java/util/TimeZone.html
Существует проблема с часовым поясом, который вы используете. Как вы рассчитываете, иллюстрируете пример? –
Я не использую какой-либо часовой пояс –
Конечно, вы используете часовой пояс, здесь неявно ваш системный часовой пояс скрыт в классе 'SimpleDateFormat' (я считаю неявные настройки злыми). Что означает 'TimeZone.getDefault()' print? И, пожалуйста, также напечатайте переменную 'millis', чтобы мы могли помочь с дальнейшим анализом. Еще одна проблема, которую я вижу, это использование только двух символов SS. Вы должны использовать SSS для миллисекунд. –