我们如何找到currentDate是否在日期范围内

时间:2018-03-21 09:58:30

标签: java date datetime datetime-comparison

我有三个日期:从日期到目前为止当前日期

我想查找当前日期是否在From和To日期之间。如果当前日期介于这两个日期之间,那么我想创建两个新的From和To日期。

示例:

  • 从日期= 3月15日
  • To Date = 25 march
  • 当前日期= 3月21日

预期结果应为:

  1. 从日期= 3月15日,到日期= 3月21日
  2. 从日期= 3月21日,到日期= 3月25日
  3. 为了实现这个逻辑,我想检查我当前的日期状态,无论是在日期范围的中间,还是在之前或之后。

2 个答案:

答案 0 :(得分:1)

您在评论中说,您的输入是"日期格式" ,但这是一个非常模糊的描述,因为从技术上讲,Date objects don't have a format

如果您的输入是java.util.Date的实例,则只需使用methods before, after and equals来比较日期。

如果你正在使用Java 8,java.time API是一个更好的选择。如果你不关心这一年,你可以使用java.time.LocalDate甚至java.time.MonthDay

这两个类都有比较方法:isAfterisBeforeequals,以及now()方法来获取当前日期。 有了这些,您就拥有了实现逻辑的所有工具。

答案 1 :(得分:0)

尝试这样的事情:

ArrayList<Date> dates = new ArrayList<>();

    DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    String dateString1 = "2017-02-15";
    String dateString2 = "2015-03-12";
    String dateString3 = "2016-07-19";
    Date date1 = null,date2=null,date3=null;

    try {
        date1 = sdf.parse(dateString1);
        date2 = sdf.parse(dateString2);
        date3 = sdf.parse(dateString3);
    } catch (ParseException e) {
        e.printStackTrace();
    }


    dates.add(date1);
    dates.add(date2);
    dates.add(date3);

    Collections.sort(dates, new Comparator<Date>() {
        public int compare(Date d1, Date d2) {
            return d1.compareTo(d2);
        }
    });