Ответ 1
Date d = new Date(file.lastModified());
lastModified() возвращает миллисекунды с 1970-01-01, а класс Date также сохраняет свое время так же. Конструктор Date (long) принимает эти миллисекунды и инициализирует Date с ним.
Как мне преобразовать File#lastModified()
в реальную дату? Формат не очень важен.
Date d = new Date(file.lastModified());
lastModified() возвращает миллисекунды с 1970-01-01, а класс Date также сохраняет свое время так же. Конструктор Date (long) принимает эти миллисекунды и инициализирует Date с ним.
Просто вы используете класс SimpleDateFormat
для конвертирования долгого времени.
Только вы выполняете код:
new SimpleDateFormat("dd-MM-yyyy HH-mm-ss").format(
new Date(new File(filename).lastModified())
);
То, что вы получаете, - это длинное число, представляющее количество миллисов, прошедших с 1 января 1970 года. Это стандартный способ представления дат.
попробуйте следующее:
java.util.Date myDate = new java.util.Date(theFile.lastModified());
и теперь у вас есть объект Date.
Вы можете использовать SimpleDateFormat, чтобы напечатать эту дату средним способом.
Получите последнюю измененную метку времени, как описано в дубликат вашего вопроса
Создайте новый объект Date
или объект Calendar
. new Date(timestamp)
. Или Calendar.getInstance()
, а затем вызовите setTimeInMillis(timestamp)
. Как следует из названия, временная метка на самом деле составляет несколько миллисекунд (с 1 января 1970 года).
Затем вы можете отформатировать дату с помощью java.text.SimpleDateFormat