Duration d = Duration.ofMillis( … ) ;
int minutes = d.toMinutesPart() ;
int seconds = d.toSecondsPart() ;
En Java 9 y posterior, cree un Duration
y llama al to…Part
métodos. En este caso: toMinutesPart
y toSecondsPart
.
Capture el inicio y la parada de su cronómetro.
Instant start = Instant.now();
…
Instant stop = Instant.now();
Representa el tiempo transcurrido en un Duration
objeto.
Duration d = Duration.between( start , stop );
Interrogue para cada parte, los minutos y los segundos.
int minutes = d.toMinutesPart();
int seconds = d.toSecondsPart();
También es posible que desee ver si su cronómetro funcionó durante mucho tiempo.
Boolean ranTooLong = ( d.toDaysPart() > 0 ) || ( d.toHoursPart() > 0 ) ;
En Java 8, el Duration
falta clase to…Part
métodos. Necesitará hacer matemáticas como se muestra en las otras Respuestas.
long entireDurationAsSeconds = d.getSeconds();
O deja Duration
Haz las matematicas.
long minutesPart = d.toMinutes();
long secondsPart = d.minusMinutes( minutesPart ).getSeconds() ;
Ver código vivo en IdeOne.com.
Intervalo: 2016-12-18T08: 39: 34.099Z / 2016-12-18T08: 41: 49.099Z
d.toString (): PT2M15S
d.getSeconds (): 135
Transcurrido: 2M 15S
Resolución
FYI, la resolución de now
los métodos cambiaron entre Java 8 y Java 9. Vea esta pregunta.
- Java 9 captura el momento con una resolución tan fina como nanosegundos. La resolución depende de la capacidad del hardware de su computadora. Veo microsegundos (seis dígitos de fracción decimal) en MacBook Pro Retina con macOS Sierra.
- Java 8 captura el momento solo en milisegundos. La implementación de
Clock
está limitado a una resolución de milisegundos. Así que puedes Tienda valores en nanosegundos pero solo capturar ellos en milisegundos.
los java.time framework está integrado en Java 8 y versiones posteriores. Estas clases suplantan al viejo problemático legado clases de fecha y hora como java.util.Date
, Calendar
Y SimpleDateFormat
.
Para obtener más información, consulte el Tutorial de Oracle. Y busque Stack Overflow para obtener muchos ejemplos y explicaciones. La especificación es JSR 310.
los Joda-Time proyecto, ahora en modo de mantenimiento, aconseja la migración a la java.time clases.
Puedes intercambiar java.time objetos directamente con su base de datos. Utilizar una Controlador JDBC conforme con JDBC 4.2 o después. Sin necesidad de cuerdas, sin necesidad de java.sql.*
clases.
¿Dónde obtener las clases java.time?