Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android開發時間和日期的代碼實現工具類(一),android工具類

android開發時間和日期的代碼實現工具類(一),android工具類

編輯:關於android開發

android開發時間和日期的代碼實現工具類(一),android工具類


android開發時間和日期工具類的代碼實現:

  1 package com.gzcivil.utils;
  2 
  3 import android.annotation.SuppressLint;
  4 import android.util.Log;
  5 
  6 import java.text.DateFormat;
  7 import java.text.ParseException;
  8 import java.text.ParsePosition;
  9 import java.text.SimpleDateFormat;
 10 import java.util.Calendar;
 11 import java.util.Date;
 12 
 13 /**
 14  * @see 時間、日期工具類
 15  * @author Chenxy
 16  * @date 2015-12-16 10:40
 17  */
 18 public class DateUtil {
 19 
 20     static SimpleDateFormat format;
 21 
 22     /** 日期格式:yyyy-MM-dd HH:mm:ss **/
 23     public static final String DF_YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
 24 
 25     /** 日期格式:yyyy-MM-dd HH:mm **/
 26     public static final String DF_YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
 27 
 28     /** 日期格式:yyyy-MM-dd **/
 29     public static final String DF_YYYY_MM_DD = "yyyy-MM-dd";
 30 
 31     /** 日期格式:HH:mm:ss **/
 32     public static final String DF_HH_MM_SS = "HH:mm:ss";
 33 
 34     /** 日期格式:HH:mm **/
 35     public static final String DF_HH_MM = "HH:mm";
 36 
 37     private final static long minute = 60 * 1000;// 1分鐘
 38     private final static long hour = 60 * minute;// 1小時
 39     private final static long day = 24 * hour;// 1天
 40     private final static long month = 31 * day;// 月
 41     private final static long year = 12 * month;// 年
 42 
 43     /** Log輸出標識 **/
 44     private static final String TAG = DateUtil.class.getSimpleName();
 45 
 46     public DateUtil() {
 47 
 48     }
 49 
 50     /**
 51      * 將日期格式化成友好的字符串:幾分鐘前、幾小時前、幾天前、幾月前、幾年前、剛剛
 52      * 
 53      * @param date
 54      * @return
 55      */
 56     public static String formatFriendly(Date date) {
 57         if (date == null) {
 58             return null;
 59         }
 60         long diff = new Date().getTime() - date.getTime();
 61         long r = 0;
 62         if (diff > year) {
 63             r = (diff / year);
 64             return r + "年前";
 65         }
 66         if (diff > month) {
 67             r = (diff / month);
 68             return r + "個月前";
 69         }
 70         if (diff > day) {
 71             r = (diff / day);
 72             return r + "天前";
 73         }
 74         if (diff > hour) {
 75             r = (diff / hour);
 76             return r + "個小時前";
 77         }
 78         if (diff > minute) {
 79             r = (diff / minute);
 80             return r + "分鐘前";
 81         }
 82         return "剛剛";
 83     }
 84 
 85     /**
 86      * 將日期以yyyy-MM-dd HH:mm:ss格式化
 87      * 
 88      * @param dateL
 89      *            日期
 90      * @return
 91      */
 92     @SuppressLint("SimpleDateFormat")
 93     public static String formatDateTime(long dateL) {
 94         SimpleDateFormat sdf = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS);
 95         Date date = new Date(dateL);
 96         return sdf.format(date);
 97     }
 98 
 99     /**
100      * 將日期以yyyy-MM-dd HH:mm:ss格式化
101      * 
102      * @param dateL
103      *            日期
104      * @return
105      */
106     @SuppressLint("SimpleDateFormat")
107     public static String formatDateTime(long dateL, String formater) {
108         SimpleDateFormat sdf = new SimpleDateFormat(formater);
109         return sdf.format(new Date(dateL));
110     }
111 
112     /**
113      * 將日期以yyyy-MM-dd HH:mm:ss格式化
114      * 
115      * @param dateL
116      *            日期
117      * @return
118      */
119     @SuppressLint("SimpleDateFormat")
120     public static String formatDateTime(Date date, String formater) {
121         SimpleDateFormat sdf = new SimpleDateFormat(formater);
122         return sdf.format(date);
123     }
124 
125     /**
126      * 將日期字符串轉成日期
127      * 
128      * @param strDate
129      *            字符串日期
130      * @return java.util.date日期類型
131      */
132     @SuppressLint("SimpleDateFormat")
133     public static Date parseDate(String strDate) {
134         DateFormat dateFormat = new SimpleDateFormat(DF_YYYY_MM_DD_HH_MM_SS);
135         Date returnDate = null;
136         try {
137             returnDate = dateFormat.parse(strDate);
138         } catch (ParseException e) {
139             Log.v(TAG, "parseDate failed !");
140 
141         }
142         return returnDate;
143 
144     }
145 
146     /**
147      * 獲取系統當前日期
148      * 
149      * @return
150      */
151     public static Date gainCurrentDate() {
152         return new Date();
153     }
154 
155     /**
156      * 驗證日期是否比當前日期早
157      * 
158      * @param target1
159      *            比較時間1
160      * @param target2
161      *            比較時間2
162      * @return true 則代表target1比target2晚或等於target2,否則比target2早
163      */
164     public static boolean compareDate(Date target1, Date target2) {
165         boolean flag = false;
166         try {
167             String target1DateTime = formatDateTime(target1, DF_YYYY_MM_DD_HH_MM_SS);
168             String target2DateTime = formatDateTime(target2, DF_YYYY_MM_DD_HH_MM_SS);
169             if (target1DateTime.compareTo(target2DateTime) <= 0) {
170                 flag = true;
171             }
172         } catch (Exception e) {
173             System.out.println("比較失敗,原因:" + e.getMessage());
174         }
175         return flag;
176     }
177 
178     /**
179      * 對日期進行增加操作
180      * 
181      * @param target
182      *            需要進行運算的日期
183      * @param hour
184      *            小時
185      * @return
186      */
187     public static Date addDateTime(Date target, double hour) {
188         if (null == target || hour < 0) {
189             return target;
190         }
191 
192         return new Date(target.getTime() + (long) (hour * 60 * 60 * 1000));
193     }
194 
195     /**
196      * 對日期進行相減操作
197      * 
198      * @param target
199      *            需要進行運算的日期
200      * @param hour
201      *            小時
202      * @return
203      */
204     public static Date subDateTime(Date target, double hour) {
205         if (null == target || hour < 0) {
206             return target;
207         }
208 
209         return new Date(target.getTime() - (long) (hour * 60 * 60 * 1000));
210     }
211 
212     /** 獲取系統時間的方法:月/日 時:分:秒 */
213     public static String getFormateDate() {
214         Calendar calendar = Calendar.getInstance();
215         int month = (calendar.get(Calendar.MONTH) + 1);
216         int day = calendar.get(Calendar.DAY_OF_MONTH);
217         int hour = calendar.get(Calendar.HOUR_OF_DAY);
218         int minute = calendar.get(Calendar.MINUTE);
219         int second = calendar.get(Calendar.SECOND);
220 
221         String systemTime = (month < 10 ? "0" + month : month) + "/" + (day < 10 ? "0" + day : day) + "  " + (hour < 10 ? "0" + hour : hour) + ":" + (minute < 10 ? "0" + minute : minute) + ":" + (second < 10 ? "0" + second : second);
222         return systemTime;
223     }
224 
225     /** 獲取系統時間的方法:時:分:秒 */
226     public static String getHourAndMinute() {
227         Calendar calendar = Calendar.getInstance();
228         int hour = calendar.get(Calendar.HOUR_OF_DAY);
229         int minute = calendar.get(Calendar.MINUTE);
230         return (hour < 10 ? "0" + hour : hour) + ":" + (minute < 10 ? "0" + minute : minute);
231     }
232 
233     /** 獲取系統時間的方法:時 */
234     public static String getHour() {
235         Calendar calendar = Calendar.getInstance();
236         int hour = calendar.get(Calendar.HOUR_OF_DAY);
237         return ((hour < 10 ? "0" + hour : hour) + "");
238     }
239 
240     /**
241      * 將2014-09-10 00:00:00 換2014-09-10
242      * 
243      * @param strDate
244      * @return
245      */
246     public static String strFormatStr(String strDate) {
247         if (strDate.equals("")) {
248             return "";
249         }
250         return dateToStr(strToDate(strDate));
251     }
252 
253     /**
254      * 2015-01-07 15:05:34
255      * 
256      * @param strDate
257      * @return
258      */
259     @SuppressLint("SimpleDateFormat")
260     public static Date strToDateHHMMSS(String strDate) {
261         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
262         ParsePosition pos = new ParsePosition(0);
263         Date strtodate = formatter.parse(strDate, pos);
264         return strtodate;
265     }
266 
267     /**
268      * 2015-01-07
269      * 
270      * @param strDate
271      * @return
272      */
273     @SuppressLint("SimpleDateFormat")
274     public static Date strToDate(String strDate) {
275         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
276         ParsePosition pos = new ParsePosition(0);
277         Date strtodate = formatter.parse(strDate, pos);
278         return strtodate;
279     }
280 
281     /**
282      * 2015.01.07
283      * 
284      * @param strDate
285      * @return
286      */
287     @SuppressLint("SimpleDateFormat")
288     public static Date strToDateDorp(String strDate) {
289         SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd");
290         ParsePosition pos = new ParsePosition(0);
291         Date strtodate = formatter.parse(strDate, pos);
292         return strtodate;
293     }
294 
295     @SuppressLint("SimpleDateFormat")
296     public static String dateToStr(java.util.Date dateDate) {
297         SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
298         String dateString = formatter.format(dateDate);
299         return dateString;
300     }
301 
302     /** 傳入一個String轉化為long */
303     @SuppressLint("SimpleDateFormat")
304     public static Long stringParserLong(String param) throws ParseException {
305         format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
306         return format.parse(param).getTime();
307     }
308 
309     /** 當前時間轉換為long */
310     @SuppressLint("SimpleDateFormat")
311     public static Long currentDateParserLong() throws ParseException {
312         format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
313         return format.parse(format.format(Calendar.getInstance().getTime())).getTime();
314     }
315 
316     /** 當前時間 如: 2013-04-22 10:37:00 */
317     @SuppressLint("SimpleDateFormat")
318     public static String getCurrentDate() {
319         format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
320         return format.format(Calendar.getInstance().getTime());
321     }
322 
323     /** 當前時間 如: 10:37 */
324     @SuppressLint("SimpleDateFormat")
325     public static String getCurrentDateHHMM() {
326         format = new SimpleDateFormat("HH:mm");
327         return format.format(Calendar.getInstance().getTime());
328     }
329 
330     /**
331      * 當前時間 如: 10:37
332      * 
333      * @throws ParseException
334      */
335     @SuppressLint("SimpleDateFormat")
336     public static String getCurrentDateHHMMSS() {
337         format = new SimpleDateFormat("HH:mm:ss");
338         return format.format(Calendar.getInstance().getTime());
339     }
340 
341     /** 當前時間 如: 20130422 */
342     @SuppressLint("SimpleDateFormat")
343     public static String getCurrentDateString() {
344         format = new SimpleDateFormat("yyyyMMddHHmm");
345         return format.format(Calendar.getInstance().getTime());
346     }
347 
348     /** 當前時間 如: 2013-04-22 */
349     @SuppressLint("SimpleDateFormat")
350     public static String getCurrentTime() {
351         format = new SimpleDateFormat("yyyy-MM-dd");
352         return format.format(Calendar.getInstance().getTime());
353     }
354 
355     @SuppressLint("SimpleDateFormat")
356     public static String getSWAHDate() {
357         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
358         return format.format(Calendar.getInstance().getTime());
359     }
360 
361     @SuppressLint("SimpleDateFormat")
362     public static Long stringToLongD(String param) throws ParseException {
363         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
364         return format.parse(param.substring(0, param.length() - 4)).getTime();
365     }
366 
367     @SuppressLint("SimpleDateFormat")
368     public static Long stringToLong(String param) throws ParseException {
369         SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmm");
370         return format.parse(param).getTime();
371     }
372 
373     /**
374      * 獲取兩個日期之間的間隔天數
375      * 
376      * @return
377      */
378     @SuppressLint("SimpleDateFormat")
379     public static int getGapCount(Date startDate, Date endDate) {
380         Calendar fromCalendar = Calendar.getInstance();
381         fromCalendar.setTime(startDate);
382         fromCalendar.set(Calendar.HOUR_OF_DAY, 0);
383         fromCalendar.set(Calendar.MINUTE, 0);
384         fromCalendar.set(Calendar.SECOND, 0);
385         fromCalendar.set(Calendar.MILLISECOND, 0);
386 
387         Calendar toCalendar = Calendar.getInstance();
388         toCalendar.setTime(endDate);
389         toCalendar.set(Calendar.HOUR_OF_DAY, 0);
390         toCalendar.set(Calendar.MINUTE, 0);
391         toCalendar.set(Calendar.SECOND, 0);
392         toCalendar.set(Calendar.MILLISECOND, 0);
393 
394         return (int) ((toCalendar.getTime().getTime() - fromCalendar.getTime().getTime()) / (1000 * 60 * 60 * 24));
395     }
396 
397     /**
398      * 日期轉換成Java字符串
399      * 
400      * @param date
401      * @return str
402      */
403     @SuppressLint("SimpleDateFormat")
404     public static String DateToStr(Date date) {
405 
406         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
407         String str = format.format(date);
408         return str;
409     }
410 
411     /**
412      * 字符串轉換成日期
413      * 
414      * @param str
415      * @return date
416      */
417     @SuppressLint("SimpleDateFormat")
418     public static Date StrToDate(String str) {
419 
420         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
421         Date date = null;
422         try {
423             date = format.parse(str);
424         } catch (ParseException e) {
425             e.printStackTrace();
426         }
427         return date;
428     }
429 
430     /**
431      * 字符串轉換成日期
432      * 
433      * @param str
434      * @return date
435      */
436     @SuppressLint("SimpleDateFormat")
437     public static Date StrToDateDrop(String str) {
438 
439         SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd");
440         Date date = null;
441         try {
442             date = format.parse(str);
443         } catch (ParseException e) {
444             e.printStackTrace();
445         }
446         return date;
447     }
448 
449     /**
450      * 
451      * @param time
452      * @return
453      */
454     @SuppressLint("SimpleDateFormat")
455     public static long getLongTime(String time) {
456         long ct = 0;
457         try {
458             format = new SimpleDateFormat("HH:mm:ss");
459             ct = format.parse(time).getTime();
460         } catch (Exception e) {
461             e.printStackTrace();
462         }
463         return ct;
464     }
465 
466     /**
467      * 判斷兩日期是否同一天
468      * 
469      * @param str1
470      * @param str2
471      * @return
472      */
473     @SuppressLint("SimpleDateFormat")
474     public static boolean isSameDay(String str1, String str2) {
475 
476         Date day1 = null, day2 = null;
477         day1 = DateUtil.strToDate(str1);
478         day2 = DateUtil.strToDate(str2);
479 
480         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
481 
482         String ds1 = sdf.format(day1);
483 
484         String ds2 = sdf.format(day2);
485 
486         if (ds1.equals(ds2)) {
487             return true;
488         } else {
489             return false;
490         }
491 
492     }
493 
494     /**
495      * 獲取兩個日期的時間差
496      */
497     @SuppressLint("SimpleDateFormat")
498     public static int getTimeInterval(String date) {
499         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
500         int interval = 0;
501         try {
502             Date currentTime = new Date();// 獲取現在的時間
503             Date beginTime = dateFormat.parse(date);
504             interval = (int) ((beginTime.getTime() - currentTime.getTime()) / (1000));// 時間差
505                                                                                         // 單位秒
506         } catch (ParseException e) {
507             e.printStackTrace();
508         }
509         return interval;
510     }
511 
512     /**
513      * 獲取兩個日期的時間差 yyyy.MM.dd HH.mm.ss
514      */
515     @SuppressLint("SimpleDateFormat")
516     public static int getInterval(String bDate, String eDate) {
517         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd");
518         int interval = 0;
519         try {
520             Date currentTime = dateFormat.parse(eDate);// 獲取現在的時間
521             Date beginTime = dateFormat.parse(bDate);
522             interval = (int) ((beginTime.getTime() - currentTime.getTime()));// 時間差
523                                                                                 // 單位秒
524         } catch (ParseException e) {
525             e.printStackTrace();
526         }
527         return interval;
528     }
529 
530     /**
531      * 兩個時間之差 求出一個long Time
532      * 
533      * @param dt1
534      * @param dt2
535      * @return
536      */
537     @SuppressLint("SimpleDateFormat")
538     public static long getTime(String date) {
539 
540         DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
541         long diff = 0;
542         try {
543             Date currentTime = new Date();// 獲取現在的時間
544             Date getdate = df.parse(date);
545             diff = getdate.getTime() - currentTime.getTime();
546 
547         } catch (Exception e) {
548         }
549         return diff;
550     }
551 
552     /**
553      * 日期轉換成Java字符串
554      * 
555      * @param date
556      * @return str
557      */
558     @SuppressLint("SimpleDateFormat")
559     public static int compare_date(String DATE1, String DATE2) {
560         DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
561         try {
562             Date dt1 = df.parse(DATE1);
563             Date dt2 = df.parse(DATE2);
564             if (dt1.getTime() >= dt2.getTime()) {
565                 return 1;
566             } else if (dt1.getTime() < dt2.getTime()) {
567                 return -1;
568             } else {
569                 return 0;
570             }
571         } catch (Exception exception) {
572             exception.printStackTrace();
573         }
574         return 0;
575     }
576 
577     /**
578      * 傳入時間 算出星期幾
579      * 
580      * @param str
581      *            2014年1月3日
582      * @param days
583      *            1:2014年1月4日 類推
584      * @return
585      */
586     @SuppressLint("SimpleDateFormat")
587     public static String formatDate(String str, int days) {
588 
589         String dateStr = "";
590         try {
591             DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
592             Date date = df.parse(str);
593             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
594             Calendar c = Calendar.getInstance();
595             Date d = dateFormat.parse(dateFormat.format(date));
596             c.setTime(d);
597             c.add(Calendar.DAY_OF_MONTH, days);
598             switch (c.get(Calendar.DAY_OF_WEEK) - 1) {
599             case 0:
600                 dateStr = "周日";
601                 break;
602             case 1:
603                 dateStr = "周一";
604                 break;
605             case 2:
606                 dateStr = "周二";
607                 break;
608             case 3:
609                 dateStr = "周三";
610                 break;
611             case 4:
612                 dateStr = "周四";
613                 break;
614             case 5:
615                 dateStr = "周五";
616                 break;
617             case 6:
618                 dateStr = "周六";
619                 break;
620             default:
621                 break;
622             }
623         } catch (Exception e) {
624             e.printStackTrace();
625         }
626 
627         return dateStr;
628     }
629 }

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved