Дата в 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;