Java中关于日期的处理
在开发时关于日期的用处很多,此处列举一些常用的方法。
对于字符串类型的日期"yyyy-mm-dd"和对Calendar类型日期的处理。
1/** *//**
2 * 将yyyy-mm-dd格式的字符串日期转换为Calendar对象
3 * @param str String
4 * @reurn Calendar
5 */
6 public Calendar getCalendarDate(String str) throws Exception
7 {
8 //Calendar c = Calendar.getInstance();
9 tmp.setTime( new SimpleDateFormat("yyyy-MM-dd").parse(str));
10
11 return tmp;
12 }
13
14 /** *//**
15 * 返回输入的Calendar日期所在星期的星期一的日期
16 * @param c Calendar
17 * @return String (yyyy-mm-dd)
18 */
19 public String getFirstDayOfWeek(Calendar c)
20 {
21 java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd");
22
23 c.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
24 return formatter.format(tmp.getTime());
25 }
26
27 /** *//**
28 * 返回输入的Calendar日期所在月的第一天的日期
29 * @param c Calendar
30 * @return String (yyyy-mm-dd)
31 */
32 public String getFirstDayOfMonth(Calendar c)
33 {
34 java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd");
35
36 int year = c.get(c.YEAR);
37 int month = c.get(c.MONTH);
38 int day = 1;
39 c.set(year, month, day);
40 return formatter.format(tmp.getTime());
41 }
42
43 /** *//**
44 * 返回该日期的年份
45 * @param str String (yyyy-mm-dd)
46 * @return int
47 * @throws Exception
48 */
49 public int getYear(String str) throws Exception
50 {
51 Calendar t = Calendar.getInstance();
52 t.setTime( new SimpleDateFormat("yyyy-MM-dd").parse(str));
53 return t.get(t.YEAR);
54 }
55
56 /** *//**
57 * 返回该日期的月份
58 * @param str String (yyyy-mm-dd)
59 * @return int
60 * @throws Exception
61 */
62 public int getMonth(String str) throws Exception
63 {
64 Calendar t = Calendar.getInstance();
65 t.setTime( new SimpleDateFormat("yyyy-MM-dd").parse(str));
66 return t.get(t.MONTH)+1;
67 }
68
69 /** *//**
70 * 返回该日期所在星期是该月的第几个星期
71 * @param str String (yyyy-mm-dd)
72 * @return int
73 * @throws Exception
74 */
75 public int getWeekNumInMonth(String str) throws Exception
76 {
77 Calendar t = Calendar.getInstance();
78 t.setTime( new SimpleDateFormat("yyyy-MM-dd").parse(str));
79 return t.get(t.WEEK_OF_MONTH);
80 }