Java Calendar 类的时间操作

时间:2021-11-12 15:36:04

Java Calendar 类时间操作,代码很简单。

演示了获取时间,日期时间的累加和累减。

 

[java] view plaincopy
  1. package MyTest;  
  2.   
  3. /* 
  4.  * 演示 Calendar 的一般操作 
  5.  */  
  6. import java.text.SimpleDateFormat;  
  7. import java.util.Date;  
  8. import java.util.Calendar;  
  9.   
  10. public class Test  
  11. {  
  12.   public Test()  
  13.   {  
  14.   }  
  15.   
  16.   public static void main(String[] args)  
  17.   {  
  18.   
  19.     // 完整显示日期时间  
  20.     String str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS")).format(new Date());  
  21.     System.out.println(str);  
  22.   
  23.     // 创建 Calendar 对象  
  24.     Calendar calendar = Calendar.getInstance();  
  25.     // 初始化 Calendar 对象,但并不必要,除非需要重置时间  
  26.     calendar.setTime(new Date());  
  27.   
  28.     // setTime 类似上面一行  
  29.     // Date date = new Date();  
  30.     // calendar.setTime(date);  
  31.   
  32.     // 显示年份  
  33.     int year = calendar.get(Calendar.YEAR);  
  34.     System.out.println("YEAR is = " + String.valueOf(year));  
  35.   
  36.     // 显示月份 (从0开始, 实际显示要加一)  
  37.     int MONTH = calendar.get(Calendar.MONTH);  
  38.     System.out.println("MONTH is = " + (MONTH + 1));  
  39.   
  40.     // 今年的第 N 天  
  41.     int DAY_OF_YEAR = calendar.get(Calendar.DAY_OF_YEAR);  
  42.     System.out.println("DAY_OF_YEAR is = " + DAY_OF_YEAR);  
  43.   
  44.     // 本月第 N 天  
  45.     int DAY_OF_MONTH = calendar.get(Calendar.DAY_OF_MONTH);  
  46.     System.out.println("DAY_OF_MONTH = " + String.valueOf(DAY_OF_MONTH));  
  47.   
  48.     // 3小时以后  
  49.     calendar.add(Calendar.HOUR_OF_DAY, 3);  
  50.     int HOUR_OF_DAY = calendar.get(Calendar.HOUR_OF_DAY);  
  51.     System.out.println("HOUR_OF_DAY + 3 = " + HOUR_OF_DAY);  
  52.   
  53.     // 当前分钟数  
  54.     int MINUTE = calendar.get(Calendar.MINUTE);  
  55.     System.out.println("MINUTE = " + MINUTE);  
  56.   
  57.     // 15 分钟以后  
  58.     calendar.add(Calendar.MINUTE, 15);  
  59.     MINUTE = calendar.get(Calendar.MINUTE);  
  60.     System.out.println("MINUTE + 15 = " + MINUTE);  
  61.   
  62.     // 30分钟前  
  63.     calendar.add(Calendar.MINUTE, -30);  
  64.     MINUTE = calendar.get(Calendar.MINUTE);  
  65.     System.out.println("MINUTE - 30 = " + MINUTE);  
  66.   
  67.     // 格式化显示  
  68.     str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());  
  69.     System.out.println(str);  
  70.   
  71.     // 重置 Calendar 显示当前时间  
  72.     calendar.setTime(new Date());  
  73.     str = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SS")).format(calendar.getTime());  
  74.     System.out.println(str);  
  75.   
  76.     // 创建一个 Calendar 用于比较时间  
  77.     Calendar calendarNew = Calendar.getInstance();  
  78.   
  79.     // 设定为 5 小时以前,后者大,显示 -1  
  80.     calendarNew.add(Calendar.HOUR, -5);  
  81.     System.out.println("时间比较:" + calendarNew.compareTo(calendar));  
  82.   
  83.     // 设定7小时以后,前者大,显示 1  
  84.     calendarNew.add(Calendar.HOUR, +7);  
  85.     System.out.println("时间比较:" + calendarNew.compareTo(calendar));  
  86.   
  87.     // 退回 2 小时,时间相同,显示 0  
  88.     calendarNew.add(Calendar.HOUR, -2);  
  89.     System.out.println("时间比较:" + calendarNew.compareTo(calendar));  
  90.   }  
  91. }