2011-02-01 19 views

Respuesta

54

Como dice jzd, puede usar System.currentTimeMillis. Si lo necesita en un objeto Date pero no desea crear un objeto nuevo Date, puede utilizar Date.setTime reutilizar un objeto existente Date. Personalmente odio el hecho de que Date es mutable, pero quizás te sea útil en este caso particular. Del mismo modo, Calendar tiene un método setTimeInMillis.

Si es posible, probablemente sería mejor mantenerlo como long. Si solo necesita una marca de tiempo, efectivamente, ese sería el mejor enfoque.

44

Esto debería funcionar:

System.currentTimeMillis(); 
10

Puede utilizar System.currentTimeMillis().

Al menos en OpenJDK, Date usa esto debajo de las cubiertas.

La llamada en System es a un método JVM nativo, por lo que no podemos decir con certeza que no haya ninguna asignación bajo las carátulas, aunque parece poco probable aquí.

6

Use System.currentTimeMillis() o System.nanoTime().

+1

A partir de la documentación sobre nanoTime(): este método solo se puede utilizar para medir el tiempo transcurrido y no está relacionado con ninguna otra noción del sistema o la hora del reloj de pared. El valor devuelto representa nanosegundos desde algún tiempo fijo pero arbitrario (tal vez en el futuro, por lo que los valores pueden ser negativos). Este método proporciona una precisión de nanosegundos, pero no necesariamente una precisión de nanosegundos. No se hacen garantías sobre la frecuencia con la que cambian los valores. Las diferencias en las llamadas sucesivas que abarcan más de aproximadamente 292 años (263 nanosegundos) no calcularán con precisión el tiempo transcurrido debido al desbordamiento numérico. – AaronF

Cuestiones relacionadas