如何在指定日期之前和之后将日期添加到 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。有没有办法将我指定日期之前的日期添加到数组列表中?

您可以获得以前的日期:

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);
}

添加元素并对其进行排序

添加比较器:

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

下面是比较函数:

 public int compareTo(MyObject obj) {
    if (getDateTime() == null || obj.getDateTime() == null)
      return 0;
    return getDateTime().compareTo(obj.getDateTime());
  }

按如下方式更改代码:

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

最新更新