Vaadin Table форматирует объекты класса Date у себя учитывая установленную локаль сессии (видимо на выходе DateTimeFormat - могу ошибаться). И всё это круто отображается с корректной сортировкой.
Проблема появилась, когда возникла TimeZone у пользователя и надо учитывать её во всех отображениях времени.
Отсюда вопрос:
Есть ли возможность как-либо остаться с классами Date в таблицах, но добавить отобржание времени с коррекцией на TimeZone пользователя?
Если вам надо формировать отображение даты в произвольном виде, можно воспользоваться такой конструкцией:
myTable = new Table() {
private static final long serialVersionUID = -1974763426674836669L;
@Override
protected String formatPropertyValue(Object rowId, Object colId, Property property) {
if (property.getType() == Date.class) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
return df.format((Date) property.getValue());
}
return super.formatPropertyValue(rowId, colId, property);
}
};