Как проверить дату в Java? [Дубликат]

1

У меня есть дата в этом формате -

2015-4-10T11:20:56

Мне нужно подтвердить дату и указать дату, когда она не больше текущей. Значение, если сегодня 10 апреля, тогда оно не должно быть 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();
    }
  • 0
    Начните с SimpleDateFormat , использование Date#before и Date#equals
  • 0
    Разобрать вашу строку с SimpleDateFormat и сравнить даты с Calendar .
Теги:
date
simpledateformat

3 ответа

1
Лучший ответ

Вы должны преобразовать строку в объект даты. Вы можете использовать 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    
}
1

Это должно сработать для вас:

    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){

    }
1

Вы можете попробовать это, используя 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();
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню