Возвращает файл lastModified () ср 31 дек 19:00:00 EST 1969

1

Я тестировал такие файлы:

    public Date findFileDate(){
    File file = new File(filePath);
    Date date = new Date(file.lastModified());
    return date;
}

Когда я печатаю date он говорит: Wed Dec 31 19:00:00 EST 1969. После некоторых исследований я обнаружил, что это мое "время с момента Unix Epoch" в соответствии с моим часовым поясом, но я смущен, почему я получаю этот вывод, если в моем filePath файле нет файла. Зачем ему не возвращать null или 0?

  • 2
    Он возвращается 0 ... эпоха Unix произошла в 7 часов вечера 31 - го декабря 1969 года в EST.
Теги:
file-io
time

1 ответ

6
Лучший ответ

Нет, file.lastModified() возвращает 0. То, что эпоха Unix

В вашем конкретном часовом поясе (восточные США по внешнему виду) местное время в эпоху Unix составляло 5 часов по сравнению с UTC, так что было 7 вечера 31 декабря 1969 года.

Чтобы подтвердить это, просто разделите свою декларацию и присвоение Date на две части:

long lastModifiedMillis = file.lastModified();
Date date = new Date(lastModifiedMillis);

Теперь, если вы посмотрите lastModifiedMillis я уверен, вы найдете значение 0, так как документально:

Возвращает
long значение, представляющее время последнего изменения файла, измеренное в миллисекундах с эпохи (00:00:00 GMT, 1 января 1970 г.) или 0L если файл не существует или возникает ошибка ввода-вывода

  • 0
    Спасибо, я использовал Date (), а не долго, я хотел

Ещё вопросы

Сообщество Overcoder
Наверх
Меню