J'ai observé ce comportement inhabituel dans quelques ordinateurs portables. J'ai eu un problème en cours d'exécution dans l'application que nous avons développée. Lors du débogage, nous avons découvert que la nouvelle date.getTime() pointe vers une ancienne date. Après cela, nous avons essayé d'exécuter un petit programme sur ces machines. Ce qui suit est le code que nous avons utilisé.Date.getTime() donnant un temps de 2000 1er janvier
import java.util.Date;
import java.util.concurrent.ConcurrentHashMap;
public class Test {
public static void main(String... args) {
System.out.println(new Date().getTime());
ConcurrentHashMap chm = new ConcurrentHashMap();
for (int i = 0; i < 100000; i++) {
chm.put(i, new Date().getTime());
if (Long.parseLong(String.valueOf(chm.get(i))) < 1332334082344l) {
System.out
.println(Long.parseLong(String.valueOf(chm.get(i))));
}
}
System.out.println("dONE "+chm.size()+" "+chm.get(1000));
}
}
La sortie est quelque chose comme "946684800617" si quelques cas. Quand nous avons vu la date il pointe au 1er janvier 2000 et quelques millisecondes. Cela n'arrive pas dans tous les ordinateurs portables.
Nous voulions savoir pourquoi cela se produisait afin que nous puissions travailler dessus.
PS: Nous utilisons Windows 7 (pro), Lenovo ThinkPad L420
Quelle version de Java utilisez-vous? Les ordinateurs portables sur lesquels le problème se produit ont-ils une version différente des autres systèmes? – Jesper
ils utilisent Java 1.6.0.22 .. tous utilisent le même Java – nandu
Et quel est l'heure du système sur les ordinateurs portables? – oers