我的核心问题是我想在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”。
我需要考虑什么才能显示年份的周数?
咨询文件:
答案 0 :(得分:1)
我会称这是一个错误,你的代码很好。你甚至可以随便摆弄"使用live sampler(匹配属性 - >日期格式),该字段除了大多数日期模式,但ww
(显然还有一些时区属性)。提交错误报告可能吗?
也许您可以通过应用更改侦听器并自己使用.setText()
来绕过它?在这种情况下,您不需要扩展DateField(实际上不需要首先扩展字段,只需创建和设置属性)。