首先,我对Java很陌生,所以如果我的问题不完整,请原谅我。我确实在SO上浏览了一些线程,即使有一些接近的线程,我也不理解它们或无法根据需要修改它们。所以这里有一个问题,下面是我从存储库获得的对象列表。
[
{
"esId": 3,
"exam": {
"examId": 1,
"name": "Final Exam",
"startDate": "2019-04-15",
"endDate": "2019-04-24",
"resultReleaseDate": "2019-04-30 07:00:00"
}
},
{
"esId": 44,
"exam": {
"examId": 15,
"name": "Mid Term II",
"startDate": "2019-09-20",
"endDate": "2019-09-25",
"resultReleaseDate": "2019-09-25 18:32:02"
},
"essList": [
{
"esdId": 74,
"subject": {
"subjectId": 1,
"name": "Math"
},
"exDate": "2019-09-20",
"startTime": "19:03",
"maxMarks": 10,
"endTime": "19:03"
},
{
"esdId": 77,
"subject": {
"subjectId": 2,
"name": "Science"
},
"exDate": "2019-09-21",
"startTime": "19:03",
"maxMarks": 10,
"endTime": "19:03"
},
{
"esdId": 79,
"subject": {
"subjectId": 3,
"name": "English"
},
"exDate": "2019-09-20",
"startTime": "19:04",
"maxMarks": 10,
"endTime": "19:04"
}
]
}
]
从上面的列表中,我想返回endDate
大于now
或today
的第一个对象
我尝试通过以下方式做
ArrayList<ExamStandard> examList = new ArrayList<ExamStandard>();
LocalDate today = LocalDate.now();
String date = today.toString();
for(int i = 0; i < examList.size(); i++)
{
if(examList.get(i).equals(exam) == date){
}
}
这开始抛出转换类型的错误。不知道该怎么做,如果有人可以帮助我并解释我该怎么做以及发生了什么,那将非常有帮助。
任何帮助不胜感激,谢谢 维克拉姆
让我假设你到达了你的exDate
并且它是字符串格式的。
首先,执行以下操作
String sDate1="31/12/1998";
Date date1=new SimpleDateFormat("dd/MM/yyyy").parse(sDate1);
System.out.println(sDate1+"t"+date1);
date1
现在采用日期格式
稍后,您可以使用预定义的日期方法,如下所述
if(date1.after(date2)){
System.out.println("Date1 is after Date2");
}
// before() will return true if and only if date1 is before date2
if(date1.before(date2)){
System.out.println("Date1 is before Date2");
}
//equals() returns true if both the dates are equal
if(date1.equals(date2)){
System.out.println("Date1 is equal Date2");
}
其中 date2 可能是您当前的日期或您想要提供的任何日期。
要返回您需要的内容,请执行以下操作
ExamList exam = new ExamList();
SimpleDateFormat sd=new SimpleDateFormat("dd/MM/yyyy");
int i = 0;
foreach(ExamList ex : examList){
if(sd.parse(ex.getExDate()).after(date)){
exam = ex;
}
i++;
}
试试吧。
如果需要一些调整,请告诉我,我可以进入我的电脑而不是手机。
注意:您可能需要添加必要的空检查。