, um die TImezone
:
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
Meine Vermutung ... wenn Sie in einer GMT + 30 min Zeitzone leben und, wenn Sie ein anderes angeben, werden Ihre Formatter Ihre aktuellen holen, so es hält 0 Stunden als GMT und wie Sie in GMT + 30 Min sind, es gibt + 30 Minuten ...
Um Zeitzone von Benutzer aktuellen Ort erhalten Sie verwenden können: die
TimeZone tz = TimeZone.getDefault();
System.out.println("TimeZone "+tz.getDisplayName(false, TimeZone.SHORT)+" Timezon id :: " +tz.getID());
n Sie können die Zeitzone im Datumsformat einstellen.
es erscheint wieder die Zeitzone wie „IST
“
Sie können auch den folgenden Code versuchen, die GMT einer Zeitzone Offset zu finden:
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;
}
es kehrt Zeitzone wie: GMT + 05.30 dieses Format
von Zeitzone verwenden Sie die genaue Zeit in allen Geräten finden ..
Siehe auch: https://developer.android.com/reference/java/util/TimeZone.html
Es gibt ein Problem mit der Zeitzone, die Sie verwenden. Wie berechnen Sie, illustrieren Sie ein Beispiel? –
Ich verwende keine Zeitzone –
Natürlich verwenden Sie eine Zeitzone, hier implizit Ihre Systemzeitzone in der Klasse 'SimpleDateFormat' versteckt (ich betrachte implizite Einstellungen als böse). Was drückt 'TimeZone.getDefault()'? Und bitte drucken Sie auch die Variable 'millis', damit wir Ihnen bei der weiteren Analyse helfen können. Ein anderes Problem, das ich sehe, ist die Verwendung von nur zwei Symbolen SS. Sie sollten SSS für Millisekunden verwenden. –