gpt4 book ai didi

datepicker - Javafx 日期选择器验证

转载 作者:行者123 更新时间:2023-12-04 20:39:52 25 4
gpt4 key购买 nike

我们试图验证 javafx datepicker。所以我们使用:

if (fromDatePicker.getValue() == null) {
sb.append("No valid from date!\n");
} else {
System.out.println(fromDatePicker.getValue().toString());
if (!DateUtil
.validEnglishDate(fromDatePicker.getValue().toString())) {
sb.append("No valid from date. Use the format yyyy-MM-dd.\n");
}
}

但目前不可能使用日期选择器获取无效日期,因为所有无效日期都已更改为起始值。
所以我们问我们是否有可能使用 javafx datepicker 获得无效的日期?

***** 编辑 *****

示例:我们有以下日期选择器:
日期选择器[2015-05-12]
现在我们在 DatePicker 中输入了“fjdfk”,所以我们有:
日期选择器[fjdfk]
在保存数据的日期选择器自动更改为 DatePicker[2015-05-12]

最佳答案

您可以使用 DatePicker#setConverter(StringConverter<LocalDate>)捕获任何解析异常并警告用户。这是一个示例:

public class SecureLocalDateStringConverter extends StringConverter<LocalDate> {
/**
* The date pattern that is used for conversion. Change as you wish.
*/
private static final String DATE_PATTERN = "dd/MM/yyyy";

/**
* The date formatter.
*/
public static final DateTimeFormatter DATE_FORMATTER =
DateTimeFormatter.ofPattern(DATE_PATTERN);

private boolean hasParseError = false;

public boolean hasParseError(){
return hasParseError;
}

@Override
public String toString(LocalDate localDate) {
return DATE_FORMATTER.format(localDate);
}

@Override
public LocalDate fromString(String formattedString) {

try {
LocalDate date=LocalDate.from(DATE_FORMATTER.parse(formattedString));
hasParseError=false;
return date;
} catch (DateTimeParseException parseExc){
hasParseError=true;
return null;
}
}

}

在您的控制下,您只需调用 converter#hasParseError() , converter是你用 DatePicker#setConverter(StringConverter<LocalDate>) 设置的那个

关于datepicker - Javafx 日期选择器验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28432576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com