tl; dr
Duration d = Duration.ofMillis( … ) ;
int minutes = d.toMinutesPart() ;
int seconds = d.toSecondsPart() ;
Java 9 und höher
Erstellen Sie in Java 9 und höher a Duration
und rufen Sie die to…Part
Methoden auf. In diesem Fall: toMinutesPart
und toSecondsPart
.
Erfassen Sie den Start und Stopp Ihrer Stoppuhr.
Instant start = Instant.now();
…
Instant stop = Instant.now();
Stellen Sie die verstrichene Zeit in einem Duration
Objekt dar.
Duration d = Duration.between( start , stop );
Fragen Sie für jeden Teil die Minuten und die Sekunden ab.
int minutes = d.toMinutesPart();
int seconds = d.toSecondsPart();
Vielleicht möchten Sie auch sehen, ob Ihre Stoppuhr erwartungsgemäß lange lief.
Boolean ranTooLong = ( d.toDaysPart() > 0 ) || ( d.toHoursPart() > 0 ) ;
Java 8
In Java 8 Duration
fehlen der Klasse to…Part
Methoden. Sie müssen wie in den anderen Antworten gezeigt rechnen.
long entireDurationAsSeconds = d.getSeconds();
Oder lassen Duration
Sie die Mathematik machen.
long minutesPart = d.toMinutes();
long secondsPart = d.minusMinutes( minutesPart ).getSeconds() ;
Siehe Live-Code in IdeOne.com .
Intervall: 2016-12-18T08: 39: 34.099Z / 2016-12-18T08: 41: 49.099Z
d.toString (): PT2M15S
d.getSeconds (): 135
Verstrichen: 2M 15S
Auflösung
Zu Ihrer Information, die Auflösung von now
Methoden wurde zwischen Java 8 und Java 9 geändert. Siehe diese Frage .
- Java 9 erfasst den Moment mit einer Auflösung von nur Nanosekunden. Die Auflösung hängt von der Leistungsfähigkeit der Hardware Ihres Computers ab. Ich sehe Mikrosekunden (sechs Nachkommastellen) auf dem MacBook Pro Retina mit macOS Sierra.
- Java 8 erfasst den Moment nur bis zu Millisekunden. Die Implementierung von
Clock
ist auf eine Auflösung von Millisekunden beschränkt. Sie können Werte also in Nanosekunden speichern , aber nur in Millisekunden erfassen .
Über java.time
Das java.time- Framework ist in Java 8 und höher integriert. Diese Klassen verdrängen die lästigen alten Legacy - Datum-Zeit - Klassen wie java.util.Date
, Calendar
, & SimpleDateFormat
.
Weitere Informationen finden Sie im Oracle-Lernprogramm . Suchen Sie im Stapelüberlauf nach vielen Beispielen und Erklärungen. Die Spezifikation ist JSR 310 .
Das Joda-Time- Projekt, das sich jetzt im Wartungsmodus befindet , empfiehlt die Migration zu den Klassen java.time .
Sie können java.time- Objekte direkt mit Ihrer Datenbank austauschen . Verwenden Sie einen JDBC-Treiber, der mit JDBC 4.2 oder höher kompatibel ist . Keine Notwendigkeit für Strings, keine Notwendigkeit für java.sql.*
Klassen.
Woher bekomme ich die java.time-Klassen?