так от этого:Java удалить точность миллисекунды от длительного значения
1459245759880
к этому
1459245759000
так от этого:Java удалить точность миллисекунды от длительного значения
1459245759880
к этому
1459245759000
Обычным целочисленное округление?
long millis = 1459245759880L;
long rounded = millis/1000 * 1000;
Использование Java времени (удобно, если вам нужно делать операции даты/времени на результат - в этом случае вы можете работать с моментом):
Instant i = Instant.ofEpochMilli(millis).truncatedTo(ChronoUnit.SECONDS);
long rounded = i.toEpochMilli();
Более замысловатым (и, вероятно, не очень ясно):
long rounded = 1000 * TimeUnit.SECONDS.convert(millis, TimeUnit.MILLISECONDS);
//OR
long rounded = TimeUnit.MILLISECONDS.convert(TimeUnit.SECONDS.convert(millis, TimeUnit.MILLISECONDS), TimeUnit.SECONDS);
Почему это не
long value = 1459245759880L;
System.out.println(1000 * (value/1000));
long x = 1459245759880;
long y = x - (x % 1000);
Используйте просто оператор modulo для получения напоминания, а затем вычтите его из фактического значения.
Вы попробовали что-нибудь, например, разделите на 1000, а затем умножьте на 1000? –