Получить дату / время последнего изменения файла в виде локальной строки даты / времени

new File(url).lastModified() возвращает long равное количеству миллисекунд с начала эпохи, которое основано на GMT.

Какой простой способ преобразовать это в String представляющий системную локальную дату / время?

Если вам действительно нужно увидеть попытку от меня здесь, это ужасно, но в любом случае это неправильно:

LocalDateTime.ofEpochSecond(new File(url).lastModified()/1000,0,ZoneOffset.UTC).atZone(ZoneId.of("UTC")).format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG))

за LocalDateTime Я просто понятия не имею, как работает API времени.

1 ответ

Решение

Чтобы получить время последнего изменения файла, вы должны использовать Java NIO.2 API, который напрямую решает вашу проблему:

FileTime fileTime = Files.getLastModifiedTime(Paths.get(url));
System.out.println(fileTime); // will print date time in "YYYY-MM-DDThh:mm:ss[.s+]Z" format

Если вы хотите получить доступ к другим свойствам (например, время последнего доступа, время создания), вы можете прочитать основные атрибуты пути с помощью Files.readAttributes(path, BasicFileAttributes.class),

Другие вопросы по тегам