2017-01-03 1 views
0

Ich benutze diesen Android-Code für die Konvertierung von Millisekunden in mm: ss.SS-Format, aber im Ergebnis Datumsformat fügt 30 zusätzliche Minuten im Datum hinzu.Dateformat fügt zusätzliche 30 Minuten zu Zeit hinzu

 Date date = new Date(millis); 
     DateFormat dateFormat= new SimpleDateFormat("mm:ss.SS", Locale.US); 
     best.add(dateFormat.format(date));\ 

Eigentlich möchte ich Millisekunden m konvertieren: ss.ss Format. Gibt es noch andere Möglichkeiten, dies zu erreichen?

Vielen Dank im Voraus.

+0

Es gibt ein Problem mit der Zeitzone, die Sie verwenden. Wie berechnen Sie, illustrieren Sie ein Beispiel? –

+0

Ich verwende keine Zeitzone –

+0

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. –

Antwort

0

, 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

+0

Ich möchte nicht 30 min hinzufügen. Dateformat fügt es im Datumsformat hinzu. Ich weiß nicht, warum ... –

+0

@akshaybhange ..check Ihre Zeitzone .. – rafsanahmad007

+0

Ja, ich lebe in einer GMT + 5: 30 min Zeitzone, so wird dies Person zu Person ändern .. was muss ich das gleiche für halten alle Geräte? –

Verwandte Themen