У меня есть дата в этом формате -
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();
}
Вы должны преобразовать строку в объект даты. Вы можете использовать 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){
}
Вы можете попробовать это, используя 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
, использованиеDate#before
иDate#equals
SimpleDateFormat
и сравнить даты сCalendar
.