Дата в Unix отметка времени

У меня есть строка, которая выглядит как "2015-06-07 16: 01: 33.0". Я хочу преобразовать его в метку времени Unix. Сначала я использую Calendar утилита для преобразования его в Date объект. Как я могу преобразовать дату в время эпохи?

String origintime = "2015-06-07 16:01:33.0";
String year = origintime.split(" ")[0].split("-")[0];            
String month = origintime.split(" ")[0].split("-")[1];
String day = origintime.split(" ")[0].split("-")[2];

String hour = origintime.split(" ")[1].split(":")[0];
String mins = origintime.split(" ")[1].split(":")[1];
String secs = origintime.split(" ")[1].split(":")[2].replace(".0","");

Calendar cal = Calendar.getInstance();    
cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(day));
cal.set(Calendar.MONTH, Integer.parseInt(month));
cal.set(Calendar.YEAR, Integer.parseInt(year));
cal.set(Calendar.HOUR_OF_DAY,Integer.parseInt(hour));
cal.set(Calendar.MINUTE,Integer.parseInt(mins));
cal.set(Calendar.SECOND,Integer.parseInt(secs));
String strdate = null;
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");

if (cal != null) {
    strdate = sdf.format(cal.getTime());
}
System.out.println(strdate);

1 ответ

Решение

Я думаю, что вы можете искать ответы в Stackru вместо публикации нового вопроса, так как это делает Stackru лучше, я просто сделал быстрый поиск, и вот они: Получение метки времени unix из Date()

или вот код, который прямо вперед:

Date currentDate = new Date();
currentDate.getTime() / 1000;

В последнее время люди предпочитают jodaTime:

DateTime dateTime = new DateTime();
long unix = dateTime.getMillis()/1000; 
Другие вопросы по тегам