Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在指定日期之前和之后将日期添加到ArrayList中_Java_Android_Date_Arraylist - Fatal编程技术网

Java 如何在指定日期之前和之后将日期添加到ArrayList中

Java 如何在指定日期之前和之后将日期添加到ArrayList中,java,android,date,arraylist,Java,Android,Date,Arraylist,我被这个问题难住了。是否可以将指定日期之前的日期添加到arraylist中?试图找到答案是不走运的 我打算这样做 try { String format = min; String format2 = format.substring(0,7); String format3 = format.substring(7,format.length()); String finalFormat =format2+"20"+format3; String fin

我被这个问题难住了。是否可以将指定日期之前的日期添加到arraylist中?试图找到答案是不走运的

我打算这样做

try {
    String format = min;
    String format2 = format.substring(0,7);
    String format3 = format.substring(7,format.length());
    String finalFormat =format2+"20"+format3;
    String finalFormatPart1 = finalFormat.substring(0, 2);
    String finalFormatPart2 = finalFormat.substring(3, 6);
    String finalFormatPart3 = finalFormat.substring(7, finalFormat.length());
    String finalFormatcomplete =finalFormatPart1+" "+finalFormatPart2+" "+finalFormatPart3;

    minDate = new SimpleDateFormat("dd MMM yyyy").parse(finalFormatcomplete);
    Log.i("minDateTime", minDate.toString());

} catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

Date rightNow = Calendar.getInstance().getTime();
for(int i=1; i != 31; i++) {
    Calendar calendar = Calendar.getInstance();
    calendar.add(rightNow, -i);
    beforeMin.add(dateToAdd);
}

但是,calendar.add()只接受int,int。有没有办法将我指定的日期之前的日期添加到arraylist中?

您可以通过以下方式获取以前的日期:

calender.add(Calendar.DATE, -1);
因此,请将代码更改为:

Calendar rightNow = Calendar.getInstance();
for (int i = 1; i <= 31; i++) {

    rightNow.add(Calendar.DATE, -i);
    Date dateToAdd = rightNow.getTime();
    beforeMin.add(dateToAdd);
}
Calendar rightNow=Calendar.getInstance();

对于(inti=1;i添加元素并对其排序

添加一个比较器:

Collections.sort(myList, new Comparator<MyObject>() {
  public int compare(MyObject obj1, MyObject obj2) {
      return obj1.getDateTime().compareTo(obj2.getDateTime());
  }
});

按以下方式更改代码:

Calendar calendar = Calendar.getInstance();
for(int i=1; i < 31; i++)
{
    calendar.add(Calendar.DATE, -1);
    beforeMin.add(calendar.getTime());
}
Calendar Calendar=Calendar.getInstance();
对于(int i=1;i<31;i++)
{
calendar.add(calendar.DATE,-1);
beforeMin.add(calendar.getTime());
}

只需使用日期比较,如下所示

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2009-12-31");
        Date date2 = sdf.parse("2010-01-31");

        System.out.println(sdf.format(date1));
        System.out.println(sdf.format(date2));

        if(date1.after(date2)){
            System.out.println("Date1 is after Date2");
        }

        if(date1.before(date2)){
            System.out.println("Date1 is before Date2");
        }

        if(date1.equals(date2)){
            System.out.println("Date1 is equal Date2");
        }

希望这个答案对你的朋友有所帮助:)

你在这里得到了什么<代码>日历.添加(立即,-i)
也许这会有帮助:您要在列表中添加的
日期是多少
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2009-12-31");
        Date date2 = sdf.parse("2010-01-31");

        System.out.println(sdf.format(date1));
        System.out.println(sdf.format(date2));

        if(date1.after(date2)){
            System.out.println("Date1 is after Date2");
        }

        if(date1.before(date2)){
            System.out.println("Date1 is before Date2");
        }

        if(date1.equals(date2)){
            System.out.println("Date1 is equal Date2");
        }