如何验证输入DatePicker的日期?

时间:2014-08-07 02:16:47

标签: java date datepicker javafx-8

我的代码有问题:

public DatePicker data = new DatePicker();
String date = "2014-08-15";

public void verify() {
if (data.getValue().equals(date)) { 
System.out.println("Success!!!");
}

}

如果DatePicker中选择的日期(通过鼠标单击)等于String"日期"变量,比我想要出现的那条消息(实际上我想要一些坐标改变,但是你要理解我发了一条消息)。

3 个答案:

答案 0 :(得分:1)

data.getValue()。equals()仅比较LocalDate对象,并为所有其他比较返回false:

检查此日期是否等于另一个日期。 将此LocalDate与另一个进行比较,确保日期相同。

仅比较LocalDate类型的对象,其他类型返回false。

REF: http://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#equals-java.lang.Object-

如果要将数据DatePicker与日期字符串进行比较,则需要执行字符串比较或创建LocalDate对象以与data.getValue()返回的DatePicker的LocalDate对象进行比较

答案 1 :(得分:1)

DatePicker docs getValue()返回LocalDate。 您可以创建一个合适的LocalDate,以便与LocalDate.of(int year, int month, int dayOfMonth)docs)方法进行比较。您可以使用以下代码创建指定的日期:

LocalDate date = LocalDate.of(2014, 8, 15);

与完全相同的代码进行比较:

public void verify() {
    if (data.getValue().equals(date)) { 
        System.out.println("Success!!!");
    }
}

此外,equals的{​​{1}}方法仅适用于其他LocalDate

答案 2 :(得分:1)

answer by nejinx是正确的。

如果您将“DatePicker”视为返回JavaFX对象的DatePicker java.time.LocalDate类,则需要与另一个java.time.LocalDate对象进行比较。

java.time.LocalDate targetLocalDate = LocalDate.of( 2014, 8, 15 );
// OR… LocalDate target = LocalDate.parse( "2014-08-15" );
LocalDate localDatePicked = datePicker.getValue();
if ( localDatePicked.equals( targetLocalDate ) 
{
    System.out.println("Success!!!");
}