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?
java
unix-timestamp
Gary Richardson
fuente
fuente

long, noint. Realmente no hay razón para usarintpara una marca de tiempo, a menos que esté usando una granularidad diferente como 1 segundo = 4 segundos, etc. O eso, u oculte su código para que las generaciones futuras no puedan ver lo incompetente que era.Respuestas:
Evite la creación del objeto Fecha con System.currentTimeMillis () . Una división entre 1000 te lleva a la época de Unix.
Como se menciona en un comentario, normalmente desea un primitivo largo (minúscula-l largo) no un objeto en caja largo (mayúscula-L largo) para el tipo de variable unixTime.
fuente
Java 8 agregó una nueva API para trabajar con fechas y horas. Con Java 8 puedes usar
Instant.now()devuelve un instante que representa la hora actual del sistema. CongetEpochSecond()usted obtiene los segundos de la época (tiempo unix) delInstant.fuente
Instant.now().getEpochSecond(),new Date().getTime()ySystem.currentTimeMillis()import java.time.Instantsi estás en Scala