Java日期时间,以及相互转化
1 package com.study.string;
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 public class DateBase {
10
11 public static void main(String[] args) throws ParseException {
12 /*
13 * 获得当前时间
14 */
15 Date date1 = new Date();
16 long long1 = date1.getTime();//date类型,转为 long类型
17 System.out.println(date1);//Sat Aug 26 08:36:36 GMT+08:00 2017
18 System.out.println(long1);//1503708031359
19
20 Calendar cale1 = Calendar.getInstance();
21 date1 = cale1.getTime();//calendar 类型 转为 date类型
22 long1 = date1.getTime();
23 System.out.println(cale1);
24 System.out.println(date1);//Sat Aug 26 08:36:36 GMT+08:00 2017
25 System.out.println(long1);
26
27 /*
28 *设置时间
29 */
30 long1 += 24*60*60*1000;
31 date1.setTime(long1);
32 System.out.println(date1);//Sun Aug 27 08:43:26 GMT+08:00 2017
33
34 /*
35 * 格式化时间日期,无参数的默认格式,有参数的自定义格式。
36 * Date -> String 用 format()
37 * String -> Date 用 parse()
38 */
39 SimpleDateFormat sim1 = new SimpleDateFormat();//默认格式:17-8-27 上午8:45
40 String time1 = sim1.format(date1);
41 System.out.println(time1);//17-8-27 上午8:45
42 Date date11 = sim1.parse(time1);
43 System.out.println(date11);
44
45 SimpleDateFormat sim2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss sss");
46 String time2 = sim2.format(date1);
47 System.out.println(time2);//2017-08-27 08:47:58 058
48 Date date22= sim2.parse(time2);
49 System.out.println(date22);//Sun Aug 27 08:52:08 GMT+08:00 2017
50
51 /*
52 * 创建指定日期 String
53 * GregorianCalendar
54 */
55 SimpleDateFormat sim3 = new SimpleDateFormat("yyyy-MM-dd");
56 String str1 = "2014-09-27";
57 Date date33 = sim3.parse(str1);
58 System.out.println(date33);//Sat Sep 27 00:00:00 GMT+08:00 2014
59
60
61 GregorianCalendar gre1 = new GregorianCalendar(2015,Calendar.DECEMBER,25);
62 Date date44 = gre1.getTime();
63 System.out.println(date44);//Fri Dec 25 00:00:00 GMT+08:00 2015
64
65
66 Calendar cal2 = Calendar.getInstance();
67 cal2.set(Calendar.YEAR, 2017);
68 cal2.set(Calendar.MONTH, 7);//月份的数字与 第几个月差1, 8 == Calendar.SEPTEMBER
69 cal2.set(Calendar.DATE, 26);// Tue Sep 09 09:04:25 GMT+08:00 2008
70 // cal2.set(Calendar.DAY_OF_MONTH, 12);
71 System.out.println(cal2.getTime());//Sat Aug 26 09:09:44 GMT+08:00 2017
72
73
74
75 /*
76 * 获取年月日,星期,时间
77 */
78 int dayOfweek = cal2.get(Calendar.DAY_OF_WEEK);
79 System.out.println(dayOfweek);//7 是星期六
80
81
82 /*
83 * Calendar 的时间加减
84 */
85 Calendar cal3 = Calendar.getInstance();
86 cal3.add(Calendar.YEAR, 1);
87 cal3.add(Calendar.MONTH, -2);
88 System.out.println(cal3.getTime());//Tue Jun 26 09:14:11 GMT+08:00 2018
89
90
91 /*
92 *
93 */
94 Calendar cal4 = Calendar.getInstance();
95 cal4.set(Calendar.YEAR, 2016);
96 cal4.set(Calendar.DATE, 1);
97 //每个月的最后 一天
98 for(int month = Calendar.JANUARY;month<Calendar.DECEMBER; month++){
99 cal4.set(Calendar.MONTH, month);
100 System.out.println(cal4.get(Calendar.YEAR)+"年"+(month+1)+"月"+
101 cal4.getActualMaximum(Calendar.DATE)+"日");
102 }/*
103 2016年1月31日
104 2016年2月29日
105 2016年3月31日
106 2016年4月30日
107 2016年5月31日
108 2016年6月30日
109 2016年7月31日
110 2016年8月31日
111 2016年9月30日
112 2016年10月31日
113 2016年11月30日
114 */
115
116 //直接创建long 型的时间
117 long long2 = System.currentTimeMillis();
118 Date daten = new Date(long2);
119 System.out.println(daten);//Sat Aug 26 09:41:08 GMT+08:00 2017
120 }
121
122 }