java - long - timestamp to date
Obteniendo "unixtime" en Java (2)
Date.getTime () devuelve milisegundos desde el 1 de enero de 1970. Unixtime es segundos desde el 1 de enero de 1970. No suelo codificar en java, pero estoy trabajando en algunas correcciones de errores. Yo tengo:
Date now = new Date();
Long longTime = new Long(now.getTime()/1000);
return longTime.intValue();
¿Hay una mejor manera de obtener unixtime en java?
ACTUALIZAR
Basándome en la sugerencia de John M, terminé con:
return (int) (System.currentTimeMillis() / 1000L);
Evite la creación del objeto Date con System.currentTimeMillis() . Una división por 1000 te lleva a la época de Unix.
Como se mencionó en un comentario, por lo general usted desea un largo primitivo (largo en minúsculas-largo) y no un objeto en caja largo (mayúscula-L largo) para el tipo de variable unixTime.
long unixTime = System.currentTimeMillis() / 1000L;
Java 8 agregó una nueva API para trabajar con fechas y horas. Con Java 8 puedes usar
import java.time.Instant
...
long unixTimestamp = Instant.now().getEpochSecond();
Instant.now()
devuelve un Instant que representa la hora actual del sistema. Con getEpochSecond()
obtienes los segundos de la época (tiempo de Unix) del Instant
.