Здесь важно отличать точность от точности. System.currentTimeMillis()
имеет точность в миллисекундах, но не дает никакой гарантии на точность, так как она получает это от базовой ОС, а ОС получает ее от аппаратного обеспечения, а разные аппаратные часы имеют разную точность.
Использование этого для управления версиями данных является плохой идеей, поскольку даже если бы вы имели точность в миллисекунды, вы все равно рискуете столкнуться, если две вещи произойдут в одну и ту же миллисекунду.