-1

我正在制作一个程序,它将生成两个日期之间的日期。日期来自DateChooser. 当我单击一个按钮时,两个日期之间的日期是这样生成的:

    date1 Jun 5, 2013  
    date2 June 20, 2013

使用此代码

    Calendar cal2 = Calendar.getInstance();
    cal2.setTime(toDate);
    while (cal2.getTime().before(newDateString)) {
        cal2.add(Calendar.DATE, 1);
        String datelist=(format.format(cal2.getTime()));
        System.out.println(datelist);

它将生成此输出

2013-06-18
2013-06-19
2013-06-20
2013-06-21
2013-06-22
2013-06-23
2013-06-24
2013-06-25
2013-06-26
2013-06-27
2013-06-28
2013-06-29
2013-06-30
2013-07-01
2013-07-02

我的问题是我想在JTable. 我试着像这样打电话给每个人string,但它没有用。如何单独输出或调用每个元素?datelistSystem.out.println(arrayImageList.get(2));datelistJTabledatelist

    final String oldy= ("yyyy-MM-dd");
    final String newy = ("MMMM dd, yyyy");

    SimpleDateFormat formatty = new SimpleDateFormat(oldy);
    java.util.Date datey=null;

    //format the final date output to MMMM-dd-yyyy
    try {
        datey=formatty.parse(datelist);
        java.util.Date newqwe2 = new SimpleDateFormat(oldy).parse(datelist);
        String eqweqwe = new SimpleDateFormat(newy).format(newqwe2);

        ArrayList<String> arrayImageList = new ArrayList<String>();
        List<String> strlist2 = new ArrayList<String>();

        arrayImageList.addAll((List<String>) Arrays.asList(eqweqwe));                                                                   

        for(int i = 0; i < arrayImageList.size(); i++){
            strlist2.add(arrayImageList.get(i));

            System.out.println(strlist2.get(2));

很抱歉,这篇文章很长,但我只想让你们了解整个过程,以防有什么遗漏。

4

1 回答 1

0

在我看来,您正在做很多不必要的工作。如果您使用Calendar对象,您可以非常有效地做到这一点。将两个日期放在对象中Calendar并命名它们toDatefromDate。您只需运行一个while不断增加的循环,fromDate直到它大于toDate并打印出来。

Calendar fromDate;
Calendar toDate;

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

while(fromDate.compareTo(toDate) < 0)
{
   System.out.println(df.format(fromDate.getTime()));
   fromDate.add(Calendar.DATE, 1);
}

您还可以使用循环来处理其他事情(例如,为 a 填充列表或模型JTable)。在这种情况下,只需制作一个StringorDate对象的列表,然后简单地将返回值放在列表getTime()/format()模型中。

于 2013-06-03T03:20:42.670 回答