JavaFX:使用自定义Formatter将LocalDateProperty绑定到StringProperty

use*_*196 2 java binding javafx date

我想根据当前的语言环境或自定义格式化程序将a绑定ObjectProperty<LocalDate>到a TextField并格式化日期.

目前我使用

myTextfield.textProperty().bind(myObject.myDateProperty().asString());
Run Code Online (Sandbox Code Playgroud)

这将生成ISO 8601格式的字符串(YYYY-MM-DD).如何获得例如DD.MM.YYYY?

use*_*196 7

好的,找到了一个简单的解决方案(使用Bindings.createStringBinding):

DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd.MM.yyyy");
myTextfield.textProperty().bind(Bindings.createStringBinding(() ->
    dtf.format(myObject.myDateProperty().get()), myObject.myDateProperty())
);
Run Code Online (Sandbox Code Playgroud)