除了目前支持的格式外,还有办法配置DatePicker接受自定义格式吗?
例如 - 而不是用户输入" 04/06/2016"进入该领域,他们可以进入" 04062016"或" 04.06.2016"?
目前我可以看到可接受的分隔符是" /"和" - "。
谢谢!
答案 0 :(得分:3)
您可以根据需要定义任意数量的模式,并在转换器中检查输入的日期是否适合其中任何一个。
private final List<String> patterns = Arrays.asList(
"MM/dd/yyyy", "MMddyyyy", "MM.dd.yyyy");
@Override
public void start(Stage stage) {
DatePicker datePicker = new DatePicker();
datePicker.setConverter(new StringConverter<LocalDate>() {
@Override
public String toString(LocalDate date) {
if (date != null) {
for (String pattern : patterns) {
try {
return DateTimeFormatter.ofPattern(pattern).format(date);
} catch (DateTimeException dte) { }
}
System.out.println("Format Error");
}
return "";
}
@Override
public LocalDate fromString(String string) {
if (string != null && !string.isEmpty()) {
for (String pattern : patterns) {
try {
return LocalDate.parse(string, DateTimeFormatter.ofPattern(pattern));
} catch (DateTimeParseException dtpe) { }
}
System.out.println("Parse Error");
}
return null;
}
});
}
答案 1 :(得分:0)
现在有一个更清晰的示例in the docs here。