Question

J'ai ce 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
 }

Quand je reçois la diff, il comprend le fuseau horaire. Je sais que l'objet de la date est interne UTC.

Alors qu'est-ce qui ne va pas ici?

Était-ce utile?

La solution

Alors qu'un objet Date est en effet UTC, votre SimpleDateFormat peut ne pas être. Je soupçonne que ce défaut de l'heure du système zone - qui est certainement ce que suggère l'expérimentation. Vous pouvez modifier ce paramètre DateFormat.setTimeZone. Donc, si votre texte représente une date UTC / heure, vous devez définir le fuseau horaire de l'UTC à formatter ainsi.

Ou vous pouvez utiliser Joda temps , qui est une API de date et l'heure généralement mieux:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top