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