Получить дату / время последнего изменения файла в виде локальной строки даты / времени
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)
,