1 package utils;
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 final class DateUtil{
10
11 /** 默认的年月日 */
12 public static final String defaultPattern = "yyyy-MM-dd";
13
14 /** hour12HMSPattern年月日 时分秒 12小时制*/
15 public static final String hour12HMSPattern = "yyyy-MM-dd hh:mm:ss";
16
17 /** hour12HMPattern年月日 时分 12小时制*/
18 public static final String hour12HMPattern = "yyyy-MM-dd hh:mm";
19
20 /** hour12HPattern年月日 时 12小时制*/
21 public static final String hour12HPattern = "yyyy-MM-dd hh";
22
23 /** hour24HMSPattern年月日 时分秒 24小时制 */
24 public static final String hour24HMSPattern = "yyyy-MM-dd HH:mm:ss";
25
26 /** hour24HMPattern年月日 时分 24小时制*/
27 public static final String hour24HMPattern = "yyyy-MM-dd HH:mm";
28
29 /** hour24HPattern年月日 时 24小时制*/
30 public static final String hour24HPattern = "yyyy-MM-dd HH";
31
32 public static String daysBetween(Date startDate, Date endDate) {
33 float d = endDate.getTime() - startDate.getTime();
34 float dd = d / 86400000f;
35 int ddd = (int)dd;
36
37 float hh = (dd - ddd) * 24;
38 int hhh = (int)hh;
39
40 float mm = (hh - hhh) * 60;
41 int mmm = (int)mm;
42
43 float ss = (mm - mmm) * 60;
44 int sss = (int)ss;
45 return ddd + "天" + hhh + "小时" + mmm + "分" + sss + "秒";
46 }
47
48 /**
49 * 返回预设Format的当前日期字符串
50 */
51 public static String getToday() {
52 Date today = new Date();
53 return format(today);
54 }
55
56 public static String getYestoday() {
57 Calendar cal1 = Calendar.getInstance();
58 cal1.setTime(new Date());
59 cal1.add(Calendar.DATE, -1);
60 return format(cal1.getTime());
61 }
62
63 public static String getTheDayBeforeYestoday() {
64 Calendar cal1 = Calendar.getInstance();
65 cal1.setTime(new Date());
66 cal1.add(Calendar.DATE, -2);
67 return format(cal1.getTime());
68 }
69
70 public static String getPreviousDay3() {
71 Calendar cal1 = Calendar.getInstance();
72 cal1.setTime(new Date());
73 cal1.add(Calendar.DATE, -3);
74 return format(cal1.getTime());
75 }
76
77 public static String getPreviousDay4() {
78 Calendar cal1 = Calendar.getInstance();
79 cal1.setTime(new Date());
80 cal1.add(Calendar.DATE, -4);
81 return format(cal1.getTime());
82 }
83
84 /**
85 * 用预设Format格式化Date成字符串
86 */
87 public static String format(Date date) {
88 return format(date, defaultPattern);
89 }
90
91 /**
92 * 使用参数Format格式化Date成字符串
93 */
94 public static String format(Date date, String pattern) {
95 String returnValue = "";
96
97 if (date != null) {
98 SimpleDateFormat df = new SimpleDateFormat(pattern);
99 returnValue = df.format(date);
100 }
101
102 return (returnValue);
103 }
104
105 /**
106 * 使用预设格式将字符串转为Date
107 */
108 public static Date parse(String strDate) throws ParseException {
109 return parse(strDate, defaultPattern);
110 }
111
112 public static Date parse(String strDate, String pattern)
113 throws ParseException {
114 SimpleDateFormat df = new SimpleDateFormat(pattern);
115 return df.parse(strDate);
116 }
117
118 /**
119 * 在日期上增加数个整月
120 */
121 public static Date addMonth(Date date, int n) {
122 Calendar cal = Calendar.getInstance();
123 cal.setTime(date);
124 cal.add(Calendar.MONTH, n);
125 return cal.getTime();
126 }
127
128 /**
129 * 在日期上增加日
130 */
131 public static Date addDay(Date date, int n) {
132 Calendar cal = Calendar.getInstance();
133 cal.setTime(date);
134 cal.add(Calendar.DATE, n);
135 return cal.getTime();
136 }
137
138 public static String formatDateTime(Date date) {
139 SimpleDateFormat outFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
140 return outFormat.format(date);
141 }
142
143 @SuppressWarnings("static-access")
144 public static String getEndOfMonth(String year, String month) {
145 Calendar cal = Calendar.getInstance();
146 cal.set(cal.YEAR, Integer.parseInt(year));
147 cal.set(cal.MONTH, Integer.parseInt(month) - 1);
148 return cal.getActualMaximum(cal.DAY_OF_MONTH) + "";
149 }
150
151 public static String addDays(String sdate, int n) throws ParseException
152 {
153 Calendar cal1 = Calendar.getInstance();
154 cal1.setTime(parse(sdate, defaultPattern));
155 cal1.add(Calendar.DATE, n);
156 return format(cal1.getTime());
157
158 }
159
160 public static String getFirstOfMonth() throws ParseException {
161 Calendar cal1 = Calendar.getInstance();
162 cal1.setTime(new Date());
163 cal1.set(5, 1);
164 return format(cal1.getTime());
165
166 }
167
168 public static String getFirstOfMonth(String sDate) throws ParseException {
169 Calendar cal1 = Calendar.getInstance();
170 cal1.setTime(parse(sDate, defaultPattern));
171 cal1.set(5, 1);
172 return format(cal1.getTime());
173
174 }
175
176 /**
177 * 获取年
178 *
179 * @param sdate
180 * @return String
181 */
182 public static String getYear(String sdate) {
183 String[] date = sdate.split("-");
184 return date[0];
185 }
186
187 /**
188 * 获取月
189 *
190 * @param sdate
191 * @return String
192 */
193 public static String getMonth(String sdate) {
194 String[] date = sdate.split("-");
195 return date[1];
196 }
197
198 public static String getCurrentYear() {
199 Calendar cale = Calendar.getInstance();
200 return Integer.toString(cale.get(Calendar.YEAR));
201 }
202
203 public static String getCurrentMonth() {
204 Calendar cale = Calendar.getInstance();
205 int month = cale.get(Calendar.MONTH);
206 month++;
207 String sMonth = Integer.toString(month);
208 if (month < 10)
209 sMonth = "0" + month;
210 return sMonth;
211 }
212
213 /**
214 * 获取天
215 *
216 * @param sdate
217 * @return String
218 */
219 public static String getDay(String sdate) {
220 String[] date = sdate.split("-");
221 return date[2];
222 }
223
224 public static String getFullDate(String date) {
225 if (date != null && date.length() == 1)
226 return "0" + date;
227 return date;
228 }
229
230 public static String getSimpleDateString(String sdate) {
231 return sdate.replace("-", "");
232 }
233
234 //把日期从字符弄转成日期型
235 public static Date convertStringToDate(String pattern, String strDate)
236 throws ParseException {
237 Date aDate = null;
238 aDate = parse(strDate, pattern);
239 return aDate;
240 }
241
242 //根据指定格式得到当前日期的字符串
243 public static String getTodayDate(String aMask){
244 Date date = new Date();
245 return getDateTime(aMask,date);
246 }
247
248 //根据指定格式得到指定日期的字符串
249 public static String getDateTime(String aMask, Date aDate) {
250 SimpleDateFormat df = null;
251 String returnValue = "";
252 df = new SimpleDateFormat(aMask);
253 returnValue = df.format(aDate);
254 return (returnValue);
255 }
256
257 public static int getYear() {
258 Calendar c = Calendar.getInstance();
259 int yy = c.get(Calendar.YEAR);
260 return yy;
261 }
262
263 public static int getMonth() {
264 Calendar c = Calendar.getInstance();
265 int month = c.get(Calendar.MONTH);
266 return month+1;
267 }
268
269 public static int getDate() {
270 Calendar c = Calendar.getInstance();
271 int date = c.get(Calendar.DATE);
272 return date;
273 }
274
275 public static int getHour() {
276 Calendar c = Calendar.getInstance();
277 int hour = c.get(Calendar.HOUR_OF_DAY);
278 return hour;
279 }
280
281 public static int getSecond() {
282 Calendar c = Calendar.getInstance();
283 int second = c.get(Calendar.SECOND);
284 return second;
285 }
286
287 public static int getMinute() {
288 Calendar c = Calendar.getInstance();
289 int minute = c.get(Calendar.MINUTE);
290 return minute;
291 }
292
293 public static String getCurDateTime() {
294 return getCurDate() + " " + getCurTime();
295 }
296
297 public static String getCurDate() {
298 String fullDate = getCurYearMonth();
299 int temp = getDate();
300 if(temp < 10){
301 fullDate += "-0" + temp;
302 }else{
303 fullDate += "-" + temp;
304 }
305 return fullDate;
306 }
307
308 public static String getCurYearMonth() {
309 String fullDate = String.valueOf(getYear());
310 int temp = getMonth();
311 if(temp < 10){
312 fullDate += "-0" + temp;
313 }else{
314 fullDate += "-" + temp;
315 }
316 return fullDate;
317 }
318
319 public static String getCurTime() {
320 String time = getCurHourMinute();
321 int temp = getSecond();
322 if(temp < 10){
323 time += ":0" + temp;
324 }else{
325 time += ":" + temp;
326 }
327 return time;
328 }
329
330 public static String getCurHourMinute() {
331 String time;
332 int temp = getHour();
333 if(temp < 10){
334 time = "0" + temp + ":";
335 }else{
336 time = temp + ":";
337 }
338 temp = getMinute();
339 if(temp < 10){
340 time += "0" + temp;
341 }else{
342 time += temp;
343 }
344 return time;
345 }
346 /**
347 *
348 * @Description: 获取当前时间
349 * @param @return
350 * @return StringBuffer
351 * @throws
352 * @author ningpeng
353 * @date 2016年1月8日
354 */
355 public static StringBuffer getNow()
356 {
357 Date date = new Date();
358 Calendar c = new GregorianCalendar();
359 c.setTime(date);
360 int year = c.get(Calendar.YEAR);
361 int month = c.get(Calendar.MONTH)+1;
362 int day = c.get(Calendar.DATE);
363 int hour = c.get(Calendar.HOUR_OF_DAY);
364 int minute = c.get(Calendar.MINUTE);
365 int seconds = c.get(Calendar.SECOND);
366 StringBuffer buff = new StringBuffer();
367 buff.append(year).append(month).append(day).append(hour).append(minute).append(seconds).toString();
368 return buff;
369 }
370
371 public static String DateFormat(Date date) {
372 Calendar c=Calendar.getInstance();
373 c.setTime(date);
374 c.get(java.util.Calendar.HOUR_OF_DAY);
375 String pattern="yyyy-MM-dd";
376 if(c.get(java.util.Calendar.HOUR_OF_DAY)!=0){
377 pattern="yyyy-MM-dd hh";
378 }else if(c.get(java.util.Calendar.MINUTE)!=0){
379 pattern="yyyy-MM-dd hh:mm";
380 }else if(c.get(java.util.Calendar.SECOND)!=0){
381 pattern="yyyy-MM-dd hh:mm:ss";
382 }
383 return new SimpleDateFormat(pattern).format(date);
384 }
385
386 public static void main(String[] args){
387 System.out.println(getMonth());
388 }
389 }