Posso converter um carimbo de data / hora Unix em um Date()
objeto, colocando o long
valor no Date()
construtor. Por exemplo: eu poderia ter como new Date(1318762128031)
.
Mas depois disso, como posso recuperar o carimbo de data / hora Unix do Date()
objeto?
Respostas:
getTime()
recupera os milissegundos desde 1º de janeiro de 1970 GMT passado para o construtor. Não deve ser muito difícil obter o tempo Unix (o mesmo, mas em segundos) a partir daí.fonte
getTime() = unixTimestamp * 1000
),getTime()
sempre retornava três Zeros no final, mas na verdade pode retornar nada de acabar com000
a999
, o que significa que tem um maior precisão devido a milissegundos e não é apenas "* 1000". Significado: Comparar um unixTimestamp * 1000 real com ogetTime()
resultado só teria sucesso em ~ 0,1% dos casos.Para obter um
timestamp
deDate()
, você precisará dividirgetTime()
por1000
, ou seja:Date currentDate = new Date(); currentDate.getTime() / 1000; // 1397132691
ou simplesmente:
long unixTime = System.currentTimeMillis() / 1000L;
fonte
new Date().getTime()
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.TimeZone; public class Timeconversion { private DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm", Locale.ENGLISH); //Specify your locale public long timeConversion(String time) { long unixTime = 0; dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+5:30")); //Specify your timezone try { unixTime = dateFormat.parse(time).getTime(); unixTime = unixTime / 1000; } catch (ParseException e) { e.printStackTrace(); } return unixTime; } }
fonte
No java 8, é conveniente usar a nova biblioteca de data e
getEpochSecond
método para obter o carimbo de data / hora (está em segundo)Instant.now().getEpochSecond();
fonte
Instant
vez deInstant.now()
. OuyourDesiredJavaUtilDate.toInstant()
se você obteve umaDate
API antiquada de uma legada.Não sei se você deseja fazer isso em js ou java, em js a maneira mais simples de obter o timestampt unix (este é o tempo em segundos de 01/01/1970) é o seguinte:
var myDate = new Date(); console.log(+myDate); // +myDateObject give you the unix from that date
fonte
Use a
SimpleDateFormat
classe. Dê uma olhada em seu javadoc: ele explica como usar as opções de formato.fonte