Java从long值中删除毫秒精度

时间:2016-03-29 10:08:32

标签: java

因此:

1459245759880

到这个

1459245759000

3 个答案:

答案 0 :(得分:4)

通常的整数舍入?

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);

答案 1 :(得分:3)

 long x = 1459245759880;
 long y = x - (x % 1000);

简单地使用模运算符来获取提醒,然后从实际值中减去它。

答案 2 :(得分:1)

为什么不呢

long value = 1459245759880L;
System.out.println(1000 * (value / 1000));