-3

Month 是一个 int 数组,用于解析 Date 数组中的每个月份。

public int [] getMonth() throws ParseException{
        String [] date=getDate();
        DateFormat df= new SimpleDateFormat("MM.dd.yy hh:mm");
        Date [] result= new Date [date.length];

        for (int i=0; i<date.length; i++){
            Calendar cal= Calendar.getInstance();
            result[i]=df.parse(date[i]);
            cal.setTime(result[i]);
            month[i]=cal.get(Calendar.MONTH);
        }
        return month;
}
4

2 回答 2

0

使用乔达

public int [] getMonth(){
    String [] date=getDate();
    DateTimeFormatter df = DateTimeFormat.forPattern("MM.dd.yy hh:mm");
    DateTime result[] = new DateTime[date.length];
    int i = 0;
    for (Date d : date) {
       result[i] = df.parse(d).month().getAsText();
       i++;
    }
    return result;
}

希望有帮助。

于 2013-07-13T15:09:24.803 回答
0

好的,这就是我的答案,但我希望我们在评论中的冗长对话能够让您了解如何通过仔细阅读堆栈跟踪、异常类型和消息来找到异常的原因。

当你声明一个变量时,它不引用任何东西:

private int[] month;

相当于

private int[] month = null;

所以,你还没有任何数组,也不能在其中存储任何东西。为了能够使用它,它必须被初始化。

此外,由于月份仅在方法中使用,因此不应将其声明为字段,而应声明为局部变量:

public int [] getMonth() throws ParseException{
    String [] date=getDate();
    int[] month = new int[date.length]; // here's the missing line
    DateFormat df= new SimpleDateFormat("MM.dd.yy hh:mm");
    Date [] result= new Date [date.length];

    for (int i=0; i<date.length; i++){
        Calendar cal= Calendar.getInstance();
        result[i]=df.parse(date[i]);
        cal.setTime(result[i]);
        month[i]=cal.get(Calendar.MONTH);
    }
    return month;
}
于 2013-07-13T15:34:43.450 回答