2015-07-28 125 views
0

我被困在一个情况数据,其中在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()))); 
} 

我在思考在这种情况下使用的逻辑有困难。

回答

1

试试这个:

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的最新版本,你也可以考虑使用乔达时间API和流更好的可读性。

相关问题