如何验证 Java 中的日期?

How to validate a date in Java?

我有一个采用这种格式的约会 -

2015-4-10T11:20:56

我需要验证日期并确保日期不大于当前日期。这意味着如果今天是 4 月 10 日,那么它不应该是 4 月 11 日或更晚。

String abc = "2015-4-10T11:20:56";

if(abc is greater than todays date) {
    // log an error
}

我该怎么做?

更新:-

我试过这样解析,但没有成功 -

    String abc = "2015-4-10T11:20:56";
    SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
    try {
        format.parse(abc);
    } catch (ParseException e) {
        e.printStackTrace();
    }

您可以尝试使用 compareTo

Date date = null;
String str = "2015-4-10T11:20:56";
try {
    DateFormat f = new SimpleDateFormat("yyyy-M-d'T'HH:mm:ss");
    f.setLenient(false);
    date = f.parse(str);
    if (date.compareTo(new Date()) > 0) {
      // your code
     }
} catch (ParseException e) { 
    e.printStackTrace();
}

您必须将字符串转换为日期对象。 您可以使用 SimpleDateFormat.

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-M-d'T'HH:mm:ss");
Date date = sdf.parse(dateStr);
if (date.compareTo(new Date()) > 0) {
    // log an error    
}

这应该适合你:

    String abc = "2015-4-10T11:20:56";
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss");
    Date  mydate = df.parse(abc);

    Calendar c = Calendar.getInstance();
    c.setTime(mydate);
    Calendar today = Calendar.getInstance();
    if (c.compareTo(today)>=0){

    }