Оно говорит , что дает ответ в миллисекундах, но, по-видимому, нет, оно дает ответ в секундах , умноженном на тысячу:
bsh % File x = new File("/vmlinuz");
bsh % print(x.lastModified());
1318019877000
В Linux, даже с ext4 (с микросекундным разрешением) все файлы заканчиваются на 000! Очевидно, в Windows вы получите шум в конце, но его не следует принимать за миллисекунды, это, как говорится, «приближение»