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