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     }

 

posted @ 2017-06-30 16:28  Spiderman.L  阅读(509)  评论(0编辑  收藏  举报