我正在制作一个程序,它将生成两个日期之间的日期。日期来自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
上输出这个。我试着从datelist
中调用每个string
,就像System.out.println(arrayImageList.get(2));
一样,但它不起作用。如何将datelist
输出到JTable
或单独调用datelist
中的每个元素?
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));
很抱歉发了这么长的帖子,但我只是想让你们得到整个过程,以防有什么遗漏。
在我看来你做了很多不必要的工作。如果你使用Calendar
对象,你可以非常有效地做到这一点。将这两个日期放在Calendar
的对象中,并将它们命名为toDate
和fromDate
。你只需要运行一个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);
}
你也可以使用循环来做其他事情(例如为JTable
填充列表或模型)。在这种情况下,只需制作String
或Date
对象的列表,并简单地将getTime()
或format()
的返回放在列表/模型中。