Конвертировать строку даты в эпоху в Java
Есть ли способ конвертировать данный Date
Строка в Milliseconds
(Epoch
Длинный формат) в Java? Пример: я хочу конвертировать
public static final String date = "04/28/2016";
в миллисекунды (эпоху).
4 ответа
Date.getTime() Возвращает количество миллисекунд с 1 января 1970 года, 00:00:00 по Гринвичу, представленное этим объектом Date.
Вы можете просто разобрать его в java.util.Date с помощью java.text.SimpleDateFormat и вызвать его функцию getTime(). Он вернет количество миллисекунд с 01 января 1970 года.
public static final String strDate = "04/28/2016";
try {
Long millis = new SimpleDateFormat("MM/dd/yyyy").parse(strDate).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
Вы можете создать Calendar
объект, а затем установить его дату на дату, которую вы хотите, а затем вызвать его getTimeInMillis()
метод.
Calendar c = new Calendar.getInstance();
c.set(2016, 3, 28);
c.getTimeInMillis();
Если вы хотите конвертировать String
прямо в дату вы можете попробовать это:
String date = "4/28/2016";
String[] dateSplit = date.split("/");
c.set(Integer.valueOf(dateSplit[2]), Integer.valueOf(dateSplit[0]) - 1, Integer.valueOf(dateSplit[1]));
c.getTimeInMillis();
Вам нужно будет использовать экземпляр Calendar для получения миллисекунд от эпохи
try {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
java.util.Date d = sdf.parse("04/28/2016");
/*
* Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object.
*/
System.out.println(d.getTime());
//OR
Calendar cal = Calendar.getInstance();
cal.set(2016, 3, 28);
//the current time as UTC milliseconds from the epoch.
System.out.println(cal.getTimeInMillis());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}