1 package yang.calendarDate;
2
3 import java.text.ParseException;
4 import java.text.SimpleDateFormat;
5 import java.util.Calendar;
6 import java.util.Date;
7 import java.util.GregorianCalendar;
8
9 /**
10 *
11 * @author Wang Yang
12 * @version V 1.0
13 */
14
15 /**
16 * 关于Date与Calendar以及GregorianCalendar的相关问题
17 * Date类:
18 * Date类的实例有一个状态(属性)称之为特定时间点。
19 * Date类的时间是由距离一个特定时间点的毫秒数来进行表示的。这个特定的时间点就是纪元(epoch),即UTC时间的1970-01-01 00:00:00
20 * 类库的设计者为了将保存的时间和给时间点的命名来分开,因此Calendar与GregorianCalendar类应运而生。
21 * GregorianCalendar类替代了Date类中的大部分方法。
22 */
23
24 /**
25 * 关于Calendar与String,以及Date之间的相互转化
26 * 需要借助SimpleDateFormat类来进行转换。
27 * String与Date之间的相互转化需要借助SimpleDateFormat类的方法的parse和format方法。
28 * Date转到String需要SimpleDateFormat.format(Date date)方法
29 * String转到Date需要SimpleDateFormat.parse(String s)方法
30 *
31 * 关于String与Calendar之间的相互转化,需要借助SimpleDateFormat和Date类来进行转化
32 * Calendar转换为String时,首先通过Calendar的getTime()方法获取Date类型,再通过SimpleDateFormat的format方法转换为String。
33 * String转换为Calendar时,首先通过SimpleDateFormat的parse方法转换为Date类型,然后再通过Calendar的setTime()方法转化为Calendar。
34 */
35 public class CalendarDate {
36 public static void main(String[] args){
37 gregorianCalendarToString();
38 }
39
40 /**
41 * GregorianCalendar转换到Date
42 */
43 public static void gregorianCalendarToDate(){
44 Calendar calendar = new GregorianCalendar();
45 Date date = calendar.getTime();
46 System.out.println(date);
47 }
48
49 /**
50 * Date转换为GregorianCalendar
51 */
52 public static void dateToGregorianCalendar(){
53 Date date = new Date(1989-1900,11,10);
54 Calendar calendar = new GregorianCalendar();
55 calendar.setTime(date);
56 System.out.println(calendar.get(Calendar.MONTH));
57 }
58
59 /**
60 * Date转为String
61 */
62 public static void dateToString(){
63 Date date = new Date();
64 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
65 String s = sdf.format(date);
66 System.out.println(s);
67 }
68
69 /**
70 * String转换为Date
71 */
72 public static void stringToDate(){
73 String s = "1989-05-10 15:05:56";
74 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
75 try {
76 Date date = sdf.parse(s);
77 System.out.println(date);
78 } catch (ParseException e) {
79 // TODO Auto-generated catch block
80 e.printStackTrace();
81 }
82 }
83
84 /**
85 * String转换为Calendar
86 */
87 public static void stringToGregorianCalendar(){
88 String s = "1879-05-01 12:45:45";
89 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
90 try {
91 Date date = sdf.parse(s);
92 Calendar calendar = new GregorianCalendar();
93 calendar.setTime(date);
94 System.out.println(calendar.get(Calendar.YEAR));
95 System.out.println(calendar);
96 } catch (ParseException e) {
97 // TODO Auto-generated catch block
98 e.printStackTrace();
99 }
100 }
101
102 /**
103 * Calendar转换为String
104 */
105 public static void gregorianCalendarToString(){
106 Calendar calendar = new GregorianCalendar();
107 Date date = calendar.getTime();
108 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
109 String s = sdf.format(date);
110 System.out.println(s);
111 }
112 }