Frage

Ich habe diesen Code:

Date now = new Date();
// the string is in UTC format, so a UTC date must be constructed, I don't know if that happens in this format
Date measure = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(utcDateTime); 
long diff = now.getTime() - measure.getTime();
 if (diff < 1000* 60 * 15) {
   // measure is less then 15 minutes recent
   do some work
 }

Wenn ich das diff bekommen, enthält es die Zeitzone. Ich weiß, dass das Date-Objekt intern ist UTC.

Also, was ist los hier?

War es hilfreich?

Lösung

Während ein Date Objekt in der Tat in UTC ist, Ihre SimpleDateFormat kann nicht sein. Ich vermute, es ist auf die Systemzeitzone Standard - das ist sicherlich was Experimente vorschlagen würde. Sie können diese mit DateFormat.setTimeZone ändern. Also, wenn Sie Ihren Text ein UTC-Datum / Zeit darstellt, sollten Sie die Zeitzone des Formatierer UTC als auch gesetzt.

Oder Sie könnten benutzen Joda Zeit , die eine allgemein bessere Datum und Uhrzeit API ist:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top