Ответ 1
getTime()
извлекает миллисекунды с 1 января 1970 года, переданные конструктору. Не должно быть слишком сложно получить Unix time (то же самое, но в секундах).
Я могу преобразовать временную метку unix в объект Date()
, поместив значение long
в конструктор Date()
. Например, я мог бы использовать его как new Date(1318762128031)
.
Но после этого, как мне вернуть временную метку unix из объекта Date()
?
getTime()
извлекает миллисекунды с 1 января 1970 года, переданные конструктору. Не должно быть слишком сложно получить Unix time (то же самое, но в секундах).
Чтобы получить timestamp
от Date()
, вам нужно разделить getTime()
на 1000
Date currentDate = new Date();
currentDate.getTime() / 1000;
// 1397132691
или просто:
long unixTime = System.currentTimeMillis() / 1000L;
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;
}
}
В java 8 удобно использовать новый метод date lib и getEpochSecond
, чтобы получить метку времени (она вторая)
Instant.now().getEpochSecond();
Используйте класс SimpleDateFormat
. Взгляните на его javadoc: он объясняет, как использовать переключатели формата.
Я не знаю, хотите ли вы достичь этого в js или java, в js самый простой способ получить unix timestampt (это время в секундах от 1/1/1970) следующим образом:
var myDate = new Date();
console.log(+myDate); // +myDateObject give you the unix from that date