前回のソースコードではJava8なのにSimpleDateFormatが使われていた!
JavaFXでファイルマネージャー編 その8 ファイルビューのソースコード - マイペースなプログラミング日記
ので今回はLocalDateTimeやDateTimeFormatterを使うように修正した。
修正前
private static TableColumn<File, String> createModifyColumn(){ TableColumn<File, String> modifyColumn = new TableColumn<>("更新日時"); modifyColumn.setCellValueFactory(new Callback<CellDataFeatures<File, String>, ObservableValue<String>>(){ @Override public ObservableValue<String> call(CellDataFeatures<File, String> param){ SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm"); return new SimpleStringProperty(format.format(param.getValue().lastModified())); } }); return modifyColumn; }
修正後
private static TableColumn<File, String> createModifyColumn(){ TableColumn<File, String> modifyColumn = new TableColumn<>("更新日時"); modifyColumn.setCellValueFactory(new Callback<CellDataFeatures<File, String>, ObservableValue<String>>(){ @Override public ObservableValue<String> call(CellDataFeatures<File, String> param){ String modifyTime = ""; try{ FileTime time = Files.getLastModifiedTime(param.getValue().toPath()); LocalDateTime date = LocalDateTime.ofInstant(time.toInstant(), ZoneId.systemDefault()); modifyTime = MODIFY_FOMATTER.format(date); }catch(IOException e){ e.printStackTrace(); } return new SimpleStringProperty(modifyTime); } }); return modifyColumn; }