日期字段的 Vaadin 14 格式

Vaadin 14 format of a date field

我有一个 vaadin 14 网格,想更改网格中日期字段的格式。我一直在寻找某种渲染器或设置格式的方法,例如 SimpleDateFormat。但我经常对 vaadin 的创造者感到惊讶。他们经常改变 api 并使情况变得更糟。我尝试使用 spring 注释:

@DateTimeFormat(pattern = "yyyy-MM-dd")

在 getter 和元素类型字段。但它不起作用这个 way.The 日期被呈现为“TUE Apr...”,这是迄今为止最无用的默认格式。我认为它比所有 vaadin 版本更无用,它迫使开发人员一遍又一遍地学习相同的东西。它很简单,直到你把它复杂化。

如何在 vaadin 14 应用程序中更改网格中的日期格式?

    grid.addColumn(Pojo::getBirthdate).setHeader(translate("date.of.birth"));

Grid#addColumn 非常通用,因为它允许使用 lambda 表达式。所以你可以很容易地创建一个方法说 formatDate,returns 格式化日期然后使用

grid.addColumn(item -> formatDate(item.getBirthdate)).setHeader(translate("date.of.birth"));

我在 vaadin 文档中找到了它:https://vaadin.com/docs/latest/ds/components/grid

grid.addColumn(new LocalDateRenderer<>(
            Pojo::getBirthdate, "MM/dd/yyyy"))
            .setHeader("Due");