Potrafię przekonwertować znacznik czasu unixa na Date()obiekt, umieszczając longwartość w Date()konstruktorze. Na przykład: mógłbym mieć to jako new Date(1318762128031).
Ale potem, jak mogę odzyskać uniksowy znacznik czasu z Date()obiektu?
Potrafię przekonwertować znacznik czasu unixa na Date()obiekt, umieszczając longwartość w Date()konstruktorze. Na przykład: mógłbym mieć to jako new Date(1318762128031).
Ale potem, jak mogę odzyskać uniksowy znacznik czasu z Date()obiektu?
Odpowiedzi:
getTime()pobiera milisekundy od 1 stycznia 1970 GMT przekazanego konstruktorowi. Uzyskanie z tego czasu uniksowego (tego samego, ale w sekundach) nie powinno być zbyt trudne .
getTime() = unixTimestamp * 1000), getTime()zawsze zwróciłoby trzy Zera na końcu, ale w rzeczywistości może zwrócić wszystko od zakończenia 000do 999, co oznacza, że ma wyższą precyzja wynikająca z milisekund, a nie tylko „* 1000”. Znaczenie: porównanie prawdziwego unixTimestamp * 1000 z getTime()wynikiem mogłoby się powieść tylko w ~ 0,1% przypadków.
Aby otrzymać timestampod Date(), musisz podzielić getTime()przez 1000, tj .:
Date currentDate = new Date();
currentDate.getTime() / 1000;
// 1397132691
lub po prostu:
long unixTime = System.currentTimeMillis() / 1000L;
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;
}
}
W java 8 wygodnie jest użyć nowej biblioteki dat i getEpochSecondmetody pobierania znacznika czasu (jest w sekundach)
Instant.now().getEpochSecond();
Instantzamiast Instant.now(). Lub yourDesiredJavaUtilDate.toInstant()jeśli masz staromodny Dateinterfejs ze starszego interfejsu API.