2016-08-09 4 views
1

Ich versuche, Informationen zwischen meiner Java-Software und einem Android-Tool auszutauschen. Ich habe System.currentTimeMillis() Formular mein Android-Tool zu einer Derby-Datenbank. Ich bin bei UTC -4.System.currentTimeMillis Java-Software und Android austauschen

On-Software:
Wenn es Aug 09 2016 08:32:32
lang lautet: 1470745952393
Das bedeutet Aug 09 2016 12:32:32 UTC

Auf Android
Wenn zeigt Aug 09 2016 08:44:37 es 1470732277580
gespeichert, die Aug 09 2016 04:44:37 für meine Zeitzone bedeutet ...

Hat keine Hat man eine Erklärung?

+1

8 + 4 = 12, 8-4 = 4 => Sie sind auf UTC-4, das Android-Tool arbeitet mit UTC. – Cristina

Antwort

1

Ihr Software-Gebietsschema unterscheidet sich von dem auf Ihrem Gerät. Überprüfen Sie auf beiden Geräten:

java.util.TimeZone.getDefault()

und sehen, was es gibt.

+0

Auf Android: ID = GMT, Offset = 0, DSTSAVINGS = 3600000, UseDaylight = false ... und Software: d = "Amerika/New_York", Offset = -18000000, –

+1

Yep. So, da hast du es. Zwei Zeitzonen sind unterschiedlich, also wird die Lange unterschiedlich interpretiert. Mögliche Lösung ist das Format des Datums: 'DateFormat df = DateFormat.getDateInstance (DateFormat.SHORT, YOUR_LOCALE); Zeichenfolge formatiertDatum = df.format (yourDate); ' –

Verwandte Themen