Vaadin Datefield无法识别SimpleDateTime格式的周数

时间:2018-02-05 12:02:20

标签: vaadin7 datefield

我的核心问题是我想在Vaadin日期字段中显示年份的周数和年份本身。例如,用户选择2018年2月6日。日期字段应格式化其值,如“06 2018”。

正如我理解Vaadin 7.7.13的文档,这很容易实现:

public class CalendarWeekField extends DateField {

public CalendarWeekField() {
    super();
    this.setLocale(UI.getCurrent().getLocale());
    this.setDateFormat("ww yyyy");
    this.setShowISOWeekNumbers(true);
}

请注意this.setDateFormat("ww yyyy");行,因为它包含实际的“魔法”。

  

日期和时间通常根据默认值显示   当前语言环境的格式(请参阅区域设置)。您可以指定自定义   使用setDateFormat()格式化。它需要一个格式字符串   Java中SimpleDateFormat的格式。

但是,按照上面的例子,DateField的输出只是“2018”。

date format not working

我需要考虑什么才能显示年份的周数?

咨询文件:

1 个答案:

答案 0 :(得分:1)

我会称这是一个错误,你的代码很好。你甚至可以随便摆弄"使用live sampler(匹配属性 - >日期格式),该字段除了大多数日期模式,但ww(显然还有一些时区属性)。提交错误报告可能吗?

也许您可以通过应用更改侦听器并自己使用.setText()来绕过它?在这种情况下,您不需要扩展DateField(实际上不需要首先扩展字段,只需创建和设置属性)。