是否有一种简单的方法可以在DatePicker的编辑器字段中显示日期?
比如“周三,2014年11月26日”而不仅仅是" 26.11.2014“?
诚挚的问候
发布于 2014-11-26 09:22:07
您需要更改日期选择器的默认格式化程序。为此,有一个适当的格式化程序:DateTimeFormatter。读一下吧,这里。
对于您的请求,我们需要这样的模式:
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE, d.MM.uuuu", Locale.ENGLISH);现在,我们可以设置自定义LocalDate转换器:
@Override
public void start(Stage primaryStage) {
DatePicker datePicker=new DatePicker();
datePicker.setValue(LocalDate.now());
datePicker.setConverter(new StringConverter<LocalDate>() {
@Override
public String toString(LocalDate object) {
return object.format(formatter);
}
@Override
public LocalDate fromString(String string) {
return LocalDate.parse(string, formatter);
}
});
StackPane root = new StackPane(datePicker);
Scene scene = new Scene(root, 400, 400);
primaryStage.setScene(scene);
primaryStage.show();
}注意,格式化程序的工作方式有两种:当从弹出窗口中选择日期时,它将用toString()格式化它,以便在编辑器字段中显示它;当您编辑该字段以输入新的本地日期时,它将尝试将其解析为带有fromString()的有效的LocalDate。如果它无效,它将恢复上一个有效日期。
https://stackoverflow.com/questions/27144010
复制相似问题