java - 获取开始日期和结束日期的数据

标签 java datetime

我陷入了这样一种情况:在 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/

相关文章:

java - 启动时出现奇怪的 tomcat7

java - 如何在 SoapUI 中获取日期减去天数?

php - 带有 date_add 的 Mysql unix_timestamp 没有给出正确的时间戳

python - 日期时间元组到秒元组

java - spring中如何动态加载配置文件

java - 如何将 jpanel 的内容打印为文本?

php - 获取一个月中的第一个或最后一个星期五

python - 构建启用时区的应用程序时的最佳实践

java - 当我打开 GUI 时如何播放音乐

java - 带有 @RequestMapping 注释的 ReSTLet 不起作用