import java.text.DateFormatSymbols;
import java.text.SimpleDateFormat;
import java.util.Calendar;public class Test {
public static void main(String[] args) {
Test.date();
} public static void date() {
SimpleDateFormat o = new SimpleDateFormat("EEEE, dd MMM HH:mm");
DateFormatSymbols dateformatsymbols = o.getDateFormatSymbols();
dateformatsymbols.setWeekdays(new String[] { "星期天", "星期一",星期二","星期三","星期四","星期五","星期六",});
dateformatsymbols.setShortWeekdays(new String[] { "日", "一", "二","三", "四", "五", "六"});
dateformatsymbols.setMonths(new String[] { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"});
dateformatsymbols.setShortMonths(new String[] { "第一月", "第二月", "第三月", "第四月", "第五月", "第六月", "第七月", "第八月", "第九月", "第十月","第十一月", "第十二月"});
o.setDateFormatSymbols(dateformatsymbols);
Calendar calendar = Calendar.getInstance();
String s = o.format(calendar.getTime());
System.out.println(s);
}
}
-------------
代码同上
为什么关于星期的显示结果不对呢?

解决方案 »

  1.   

    为什么星期二显示星期三?
    为什么如果改系统时间为星期六就会
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7大虾们帮帮我哈
      

  2.   


    当改系统时间为星期六时,会按索引Calendar.SATURDAY(值为7)的下标从数组里取值,而该下标超出了该数组的最大索引.设置的数组应按Calendar.SUNDAY,Calendar.MONDAY...这样的顺序来索引,因Calendar.SUNDAY值为1,所以应该这样设置:
    dateformatsymbols.setWeekdays(new String[] {"","星期天", "星期一","星期二","星期三","星期四","星期五","星期六"});
    dateformatsymbols.setShortWeekdays(new String[] { "","日", "一", "二","三", "四", "五", "六"});