Calendar的使用注意
一、Calendar和GregorianCalendar的关系
GregorianCalendar的一点:
// 初始化 Gregorian 日历 // 使用当前时间和日期 // 默认为本地时间和时区 GregorianCalendar gcalendar = new GregorianCalendar(); // 显示当前时间和日期的信息 System.out.print("Date: "); System.out.print(months[gcalendar.get(Calendar.MONTH)]); System.out.print(" " + gcalendar.get(Calendar.DATE) + " "); System.out.println(year = gcalendar.get(Calendar.YEAR)); System.out.print("Time: "); System.out.print(gcalendar.get(Calendar.HOUR) + ":"); System.out.print(gcalendar.get(Calendar.MINUTE) + ":"); System.out.println(gcalendar.get(Calendar.SECOND)); // 测试当前年份是否为闰年 if(gcalendar.isLeapYear(year)) { System.out.println("当前年份是闰年"); } else { System.out.println("当前年份不是闰年"); }
二、 Calendar的使用注意事项
Java Calendar类月份从零开始计算,故使用Calendar类时,其中的MONTH为实际月份-1。为了显示正确,如果大兄弟你这样作了,那就错了。看代码,你是否犯了这样的错。为了显示正确,直接用set()方法让month+1【笑哭】。
1 public String getDayTime(Calendar calendar) { 2 int year = calendar.get(Calendar.YEAR); 3 int month = calendar.get(Calendar.MONTH); 4 int day = calendar.get(Calendar.DATE); 5 calendar.set(year, month + 1, day + 1); 6 month = calendar.get(Calendar.MONTH); 7 day = calendar.get(Calendar.DATE); 8 return "(" + month + "月" + day + ")"; 9 }
正确做法:
1 /** 2 * 获取当前时间一天以后的时间 3 */ 4 public static String getAfterDayTime() { 5 Calendar calendar = Calendar.getInstance(); 6 calendar.setTime(new Date()); 7 int day = calendar.get(Calendar.DATE); 8 calendar.set(Calendar.DATE, day + 1); 9 int month = calendar.get(Calendar.MONTH); 10 day = calendar.get(Calendar.DAY_OF_MONTH); 11 return "(" + (month + 1) + "月" + day + ")";//只要在结果上给month加1,这样显示就正确了 12 }