首先,我强烈建议使用
java.time
API
,而不是传统类,例如
java.util.Calendar
和
java.util.Date
等
在任何情况下,都可以通过在列上使用单元格工厂来更改给定列中单元格中数据的显示方式。如果单元格值工厂正在生成
Calendar
你大概有
TableColumn<MyTableType, Calendar> dateColumn ;
// ...
dateColumn.setCellValueFactory(...);
您还可以执行其他操作
DateFormat dateFormat = DateFormat.getDateInstance();
dateColumn.setCellFactory(col -> new TableCell<MyTableType, Calendar>() {
@Override
protected void updateItem(Calendar date, boolean empty) {
super.updateItem(date, empty);
if (empty) {
setText(null);
} else {
setText(dateFormat.format(date.getTime()));
}
}
});
如果您使用上述
JAVA时间
API,表示日期
LocalDate
并使用
DateTimeFormatter
要进行格式化,请执行以下操作:
TableColumn<MyTableType, LocalDate> dateColumn ;
// ...
dateColumn.setCellValueFactory(...);
DateTimeFormatter dateFormat = DateTimeFormatter.ISO_LOCAL_DATE;
dateColumn.setCellFactory(col -> new TableCell<MyTableType, LocalDate>() {
@Override
protected void updateItem(LocalDate date, boolean empty) {
super.updateItem(date, empty);
if (empty) {
setText(null);
} else {
setText(dateFormat.format(date));
}
}
});