我陷入了这样一种情况:在 for 循环中,我以字符串的形式获取日期时间
16/07/2014 11:06:33
25/05/2014 06:24:56
21/05/2014 21:37:03
21/05/2014 21:18:54
21/05/2014 21:00:57
21/05/2014 20:41:12
21/05/2014 20:24:50
15/05/2014 09:44:20
13/05/2014 17:08:27
05/05/2014 21:48:27
05/05/2014 12:02:59
我将其转换为SimpleDateFormat,以便通过使用开始日期和结束日期我可以获得这些日期范围之间的日期时间。我还有开始日期和结束日期变量。我想知道在当前情况下如何应用开始和结束日期过滤器?
String testStart = "05/05/2014 12:02:59";
String testEnd = "15/05/2014 09:44:20";
for(int i=0; i<testOutput.getResultBody().getPaymentResult().size(); i++)
{
String oldFormat = "dd/MM/yyyy HH:mm:ss";
String newFormat = "dd/MM/yyyy HH:mm:ss";
SimpleDateFormat sdf1 = new SimpleDateFormat(oldFormat);
SimpleDateFormat sdf2 = new SimpleDateFormat(newFormat);
System.out.println("-->" + sdf2.format(sdf1.parse(paymentOutput.getResultBody().getPaymentResult().get(i).getMyDate())));
}
我很难思考在这种情况下使用的逻辑。
最佳答案
试试这个:
String format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date testStart = format.parse("05/05/2014 12:02:59");
Date testEnd = format.parse("15/05/2014 09:44:20");
for(int i=0; i<testOutput.getResultBody().getPaymentResult().size(); i++) {
String dateStr = paymentOutput.getResultBody().getPaymentResult().get(i).getMyDate();
Date date = format.parse(dateStr);
if (date.compareTo(testStart) >= 0 && date.compareTo(testEnd) < 0) {
System.out.println(dateStr);
}
}
如果您使用的是最新版本的 Java,您还可以考虑使用 Joda time API 和 Streams 以获得更好的可读性。
关于java - 获取开始日期和结束日期的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31671027/