【问题标题】:How do you format GWT Datepicker month label?你如何格式化 GWT Datepicker 月份标签?
【发布时间】:2020-01-08 16:12:16
【问题描述】:

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

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

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

我正在使用 GWT 2.8.1。

【问题讨论】:

  • 使用DateTimeFormatter
  • @YCF_L 我了解如何格式化日期,但不具体是那个值。因为我没有看到访问它的方法
  • 和你一样,我看了一下 javadoc,但它看起来是不可配置的
  • @RobNewton 我的家伙说应该有办法,但也许没有。感谢您为我仔细检查。

标签: java gwt datepicker


【解决方案1】:

我设法在 GWT 2.7 中做到了这一点。我相信它也可以在 2.8 中使用 - 如果没有,请告诉我。

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

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

getMonthAndYearFormatter() 方法返回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


结果如下:

【讨论】:

  • 非常感谢,我什至没有考虑过这样做。我可以很容易地将它添加到我的代码中。
猜你喜欢
  • 2020-02-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多