public class dateController implements Initializable {
@FXML Label lblDate;
Alert alert = new Alert(AlertType.INFORMATION);
@Override
public void initialize(URL location, ResourceBundle resources) {
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = new Date();
lblDate.setText(dateFormat.format(date));
String a ="19/09/2018";
String currentdate = lblDate.getText();
String LastRunDate = currentdate;
if(Integer.parseInt(currentdate) < Integer.parseInt(a)) {
alert.setHeaderText(null);
alert.setContentText("Successfull");
alert.show();
}
}
}
为什么会发生这种情况?
integer.parseInt
可以将42
这样的字符串解析为int
。您正在尝试使用该方法解析类似17/09/2018
的字符串。您的字符串不代表有效的int
值(坦率地说,我不知道您希望从它中得到哪个整数?)因此,ParseInt
方法抛出NumberFormatException
。
那该怎么办呢?
LocalDate expirationDate = LocalDate.of(2018, Month.SEPTEMBER, 19);
LocalDate today = LocalDate.now(ZoneId.systemDefault());
if (today.isBefore(expirationDate)) {
alert.setHeaderText(null);
alert.setContentText("Successful");
alert.show();
}
请注意,与问题中的代码相比,它要简单得多。在这种情况下,您不需要格式化或解析。我正在使用JVM的时区设置来获取今天的日期(您在问题中也这样做了)。因此,用户可能会通过更改时区将过期时间推后几个小时。如果要避免这种情况,还可以对时区进行硬编码,例如zoneid.of(“asia/ust-nera”)
如果确实需要解析19/09/2018
:
DateTimeFormatter dateFormatter
= DateTimeFormatter.ofPattern("dd/MM/uuuu");
String a ="19/09/2018";
LocalDate expirationDate = LocalDate.parse(a, dateFormatter);
System.out.println("Expiration date is " + expirationDate);
此代码段输出:
有效期2018-09-19
远离date
、dateformat
和simpledateformat
。它们早就过时了,特别是最后两个出了名的麻烦。取而代之的是使用Java.time,现代的Java日期和时间API。
链接:Java™教程:Trail:Date Time
我正在进行JavaScript验证,验证文本框的日期是否等于当前日期。 如果大于或等于今天的日期,则显示错误消息。 注意:在我的中,我已将日期转换为格式。所以我需要检查date与格式的当前日期。这是我的代码: 我需要使用日期的格式来检查我的文本框中的日期,因此我今天的值只能使用日期的格式。
问题内容: 我正在尝试对应该仅包含当前日期和将来日期的日期进行验证,如果该日期是较早的日期,则它应该显示 日期早于当前日期 我也想允许当前日期。现在,将当前日期设置为gievnDate,它始终显示 日期早于当前日期 但我期望输出为 日期是指定日期的未来日期,例如今天。 下面是我一直在尝试的代码: 在这里,当我检查15/02/13时,它显示为比当前日期早。我的方法是否错误?还是有更好的方法? 问题答
问题内容: 我想通过将NSDate与当前日期进行比较来检查NSDate是否在之前(过去)。我该怎么做? 谢谢 问题答案: 我找到了方法。 您也有方法。 迅速3到迅速5:
我有两个约会。 我如何检查一个日期是否比另一个日期大? 我试过这个: 但它不起作用=( 这种dd/mm/yyyy格式有方法吗?
我需要获取当前日期,但格式如下: 有什么方法我可以用吗?我只找到了不同的格式和暂时无法使用的东西。用于使用python。