你如何格式化 GWT Datepicker 月份标签?

How do you format GWT Datepicker month label?

我想知道是否有人知道如何为 GWT 日期选择器格式化 datepickerMonth

当前格式是 2020 Jan,我正在寻找 January 2020

我已经浏览了 GWT Datepicker Javadoc,但找不到任何方法来访问该值。

我正在使用 GWT 2.8.1。

我在 GWT 2.7 中设法做到了这一点。我相信它也适用于 2.8 - 如果不行,请告诉我。

如果您查看 DatePicker 的实现,您会发现它使用 DefaultMonthSelectorDefaultCalendarViewCalendarModel

CalendarModel是我们感兴趣的,因为它提供了monthAndYearFormatter负责渲染2020 Jan。不幸的是,你不能设置你自己的CalendarModel,所以我们需要子类化DatePicker

getMonthAndYearFormatter() 方法 returns PredefinedFormat.YEAR_MONTH_ABBR 我们需要将其更改为 PredefinedFormat.YEAR_MONTH 以获得完整的月份名称。或者改成你想要的。

所以,你只需要像这样覆盖这个方法:

public class MyDatePicker extends DatePicker {
    public MyDatePicker() {
        super(new DefaultMonthSelector(), new DefaultCalendarView(), new CalendarModel() {
            @Override
            protected DateTimeFormat getMonthAndYearFormatter() {
                return DateTimeFormat.getFormat(PredefinedFormat.YEAR_MONTH);
            }
        });
    }
}

只需使用 MyDatePicker 而不是 DatePicker


这是结果: