【问题标题】:How can I verify the date entered into DatePicker?如何验证输入 DatePicker 的日期?
【发布时间】:2014-08-07 02:16:46
【问题描述】:

下面的代码有问题:

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

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

}

如果在DatePicker 中选择的日期(通过鼠标单击)等于String“日期”变量的日期,那么我希望显示该消息(实际上我希望更改一些坐标,但为你了解我发了一条消息)。

【问题讨论】:

  • date是什么类型的对象?
  • 我相信ScaryWombat的意思是问:getValue()的返回值是什么类型的对象? (date 是一个字符串)你的意思是 DatePicker 是一个 JavaFX DatePicker 对象,其 getValue 返回一个 java.time.LocalDate

标签: java date datepicker javafx-8


【解决方案1】:

answer by nejinx 是正确的。

如果您的意思是“DatePicker”是返回 java.time.LocalDate 对象的 JavaFX DatePicker 类,那么您需要与另一个 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!!!");
}

【讨论】:

  • java.local. 好像没必要?
  • @ıɯɐƃoʇǝızuǝʞ 谢谢指正。 (a) java.local 是一个错误,应该是 java.time。 (b) 我在使用中的包裹上添加了一个限定名称,因为它太新了。而Joda-Time 恰好有相同的类名。
【解决方案2】:

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

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

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

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

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

【讨论】:

  • 为什么投反对票,没有评论?这个答案在我看来是正确的。
【解决方案3】:

DatePicker docs getValue() 返回一个LocalDate。 您可以创建一个适当的LocalDateLocalDate.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!!!");
    }
}

另外,LocalDateequals 方法仅适用于其他LocalDates。

【讨论】:

  • 您关于LocalDate.toString() 输出因计算机而异的说法不正确。医生说:The output will be in the ISO-8601 format uuuu-MM-dd.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多