你如何格式化 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
的实现,您会发现它使用 DefaultMonthSelector
、DefaultCalendarView
和 CalendarModel
。
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
。
这是结果:
我想知道是否有人知道如何为 GWT 日期选择器格式化 datepickerMonth
?
当前格式是 2020 Jan
,我正在寻找 January 2020
。
我已经浏览了 GWT Datepicker Javadoc,但找不到任何方法来访问该值。
我正在使用 GWT 2.8.1。
我在 GWT 2.7 中设法做到了这一点。我相信它也适用于 2.8 - 如果不行,请告诉我。
如果您查看 DatePicker
的实现,您会发现它使用 DefaultMonthSelector
、DefaultCalendarView
和 CalendarModel
。
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
。
这是结果: