2016-03-29 9 views

Antwort

4

Übliche ganzzahlige Rundungs?

long millis = 1459245759880L; 
long rounded = millis/1000 * 1000; 

Verwendung von Java Zeit (praktisch, wenn Sie auf dem Ergebnis Datum/Zeit-Operationen tun müssen, um - in diesem Fall können Sie mit dem Moment arbeiten):

Instant i = Instant.ofEpochMilli(millis).truncatedTo(ChronoUnit.SECONDS); 
long rounded = i.toEpochMilli(); 

Mehr gewunden (und wahrscheinlich nicht sehr clear):

long rounded = 1000 * TimeUnit.SECONDS.convert(millis, TimeUnit.MILLISECONDS); 
//OR 
long rounded = TimeUnit.MILLISECONDS.convert(TimeUnit.SECONDS.convert(millis, TimeUnit.MILLISECONDS), TimeUnit.SECONDS); 
+0

Was ist timeUnit hier? Aus welcher Klasse kommt es? ist es ein Teil von jdk – Panther

+2

@Panther ja, seit Java 5 ... https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html – assylias

+0

Dank war mir nicht bekannt – Panther

1

Warum nicht diese

long value = 1459245759880L; 
System.out.println(1000 * (value/1000)); 
3
long x = 1459245759880; 
long y = x - (x % 1000); 

Verwenden Sie einfach den Modulo-Operator, um eine Erinnerung zu erhalten, und subtrahieren Sie sie dann vom tatsächlichen Wert.

Verwandte Themen