java工具包一:日期处理
作者:NiceCui
- 本文谢绝转载,如需转载需征得作者本人同意,谢谢。
- 本文链接:http://www.cnblogs.com/NiceCui/p/7846812.html
- 邮箱:moyi@moyibolg.com
- 日期:2017-11-16
平时写代码有时会常用到一些处理日期的逻辑,自己写了一个工具包,方便每次处理
1 import java.text.ParseException;2
3 import java.text.SimpleDateFormat;
4 import java.util.Date;
5
6 import org.junit.Test;
7
8 /**
9 * 日期处理工具包
10 * @author NiceCui
11 * @date 2017-11-14
12 *
13 */
14 public class DateTool {
15
16 /**
17 * 讲字符串格式的日期 转换成 自定义的 日期格式 返回Date类型
18 *
19 * @param String
20 * date
21 * @param String
22 * format
23 * @return Date
24 */
25 public static Date getDate(String date, String format) {
26 if (date == null)
27 return null;
28 java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat(format);
29 try {
30 return formatdatetime.parse(date);
31 } catch (ParseException e) {
32 e.printStackTrace();
33 }
34 return null;
35 }
36
37 /**
38 * 讲Date类型的日期 转换成 String 字符串形式的
39 *
40 * @param date
41 * @return String
42 */
43 public static String getTimeStr(Date date) {
44 if (date == null)
45 return null;
46 java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
47 return formatdatetime.format(date);
48 }
49
50 /**
51 * 比较两个 Date类型的 日期 是否是一样的
52 *
53 * @param Date
54 * day1
55 * @param Date
56 * day2
57 * @return boolean
58 */
59 public static boolean isSameDay(Date day1, Date day2) {
60 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
61 String ds1 = dateFormat.format(day1);
62 String ds2 = dateFormat.format(day2);
63 if (ds1.equals(ds2)) {
64 return true;
65 } else {
66 return false;
67 }
68 }
69
70 /**
71 * 返回开始日期 和 结束日期直接间隔的天数 返回的int类型 单位是 天
72 *
73 * @param Date
74 * start
75 * @param Date
76 * end
77 * @return int
78 */
79 public static int getDays(Date start, Date end) {
80 Date normStart = DateTool.getDateBegin(start);
81 Date normEnd = DateTool.getDateBegin(end);
82 int days = (int) ((normEnd.getTime() - normStart.getTime()) / (1000L * 24 * 3600));
83
84 return days;
85 }
86
87 /**
88 * 获得一天的第1s
89 *
90 * @param date
91 * @return
92 */
93 public static Date getDateBegin(Date date) {
94 Date dateBegin = DateTool.getDate(DateTool.getDateStr(date), "yyyy-MM-dd");
95 return dateBegin;
96 }
97 public static String getDateStr(Date date) {
98 if(date==null)
99 return null;
100 java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd");
101 return formatdatetime.format(date);
102 }
103 public static String getDateStr(Date date, String format) {
104 if(date==null) return null;
105 java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat(format);
106 return formatdatetime.format(date);
107 }
108
109 /**
110 * 获得一天的最后1s
111 *
112 * @param date
113 * @return
114 */
115 public static Date getDateEnd(Date date) {
116 Date endDate = DateTool.getDate(DateTool.getDateStr(new Date()) + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
117 return endDate;
118 }
119
120 /**
121 * 讲字符串形式的日期 返回 固定格式 年月日形式的Date形式的 日期
122 *
123 * @param String
124 * datestr
125 * @return Date
126 */
127 public static Date getDateStr(String datestr) {
128 java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd");
129 try {
130 return formatdatetime.parse(datestr);
131 } catch (ParseException e) {
132 e.printStackTrace();
133 return null;
134 }
135 }
136
137 /**
138 * 返回 String 类型的 年
139 *
140 * @param date
141 * @return
142 */
143 public static String getYearStr(Date date) {
144 java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy");
145 return formatdatetime.format(date);
146 }
147
148 /**
149 * 返回 int 类型 的年
150 *
151 * @param date
152 * @return
153 */
154 public static int getYear(Date date) {
155 java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy");
156 return Integer.parseInt(formatdatetime.format(date));
157 }
158
159 /**
160 * 返回int类型的月
161 *
162 * @param date
163 * @return
164 */
165 public static int getMonth(Date date) {
166 java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("MM");
167 return Integer.parseInt(formatdatetime.format(date));
168 }
169
170 /**
171 * "Tue May 17 10:26:26 CST 2011 由date.toString()得到 像这样的日期如何格式化?": String dstr =
172 * "Tue May 17 10:26:26 CST 2011"; SimpleDateFormat formatter = new
173 * SimpleDateFormat("EEEE MMM dd HH:mm:ss Z yyyy"); Date d =
174 * formatter.parse(dstr);
175 *
176 * @return
177 */
178 public static Date parseDateStr(String dstr) {
179 Date d = null;
180 SimpleDateFormat formatter = new SimpleDateFormat("EEEE MMM dd HH:mm:ss Z yyyy");
181 try {
182 d = formatter.parse(dstr);
183 } catch (ParseException e) {
184 formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
185 try {
186 d = formatter.parse(dstr);
187 } catch (Exception e2) {
188 // TODO: handle exception
189 }
190 }
191 return d;
192 }
193
194 @Test
195 public void test() {
196
197 String startTime = "2017-11-16";
198 // Date time = Common.getDate(startTime+" 00:00:00","yyyy-MM-dd HH:mm:ss");
199 // SimpleDateFormat fomat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
200 // System.out.println(fomat.format(time));
201
202 // Date date = new Date();
203 // Date date1 = new Date();
204 // System.out.println(isSameDay(date,date1));
205
206 System.out.println(parseDateStr(startTime));
207 }
208
209 }
以上是 java工具包一:日期处理 的全部内容, 来源链接: utcz.com/z/392955.html