Я наблюдал это необычное поведение на нескольких ноутбуках. У меня возникла проблема с приложением, которое мы разработали. При отладке мы обнаружили, что новый Date.getTime () указывает на старую дату. После этого мы попытались запустить небольшую программу на этих машинах. Ниже приведен код, который мы использовали.
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));
}
}
Вывод будет похож на «946684800617», если несколько случаев. Когда мы увидели дату, она указывает на 1 января 2000 года и несколько миллисекунд. Это происходит не во всех ноутбуках.
Хотелось узнать, почему это происходит, чтобы мы могли поработать над этим.
PS: мы используем windows 7 (pro), Lenovo ThinkPad L420