對於日期格式轉換能夠用到如下的一個輔助類java
package com.okkuaixiu.staff.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Locale; import android.text.TextUtils; /** * 日期格式化工具類 * */ public class DateUtil { public static SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA); public static SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss", Locale.CHINA); public static SimpleDateFormat sdf_week = new SimpleDateFormat( "yyyy-MM-dd EE", Locale.CHINA); public static SimpleDateFormat sd_china = new SimpleDateFormat( "yyyy年MM月dd日", Locale.CHINA); public static SimpleDateFormat sdf_china = new SimpleDateFormat( "yyyy年MM月dd日 HH時mm分ss秒", Locale.CHINA); public static SimpleDateFormat tt = new SimpleDateFormat( "yyyy年MM月dd日 HH:mm", Locale.CHINA); public static SimpleDateFormat time_format = new SimpleDateFormat( "yyyy年MM月dd日 HH:mm", Locale.CHINA); private static Calendar calendar; public static String Short2LongDate(String date) { try { date = sd.format(sdf.parse(date)); } catch (ParseException e) { e.printStackTrace(); } return date; } /** * 2015-01-01 "2015-01-01" * * @param date * * @return */ public static String getStringDate(Date date) { return getStringDate(date, true); } /** * 2015-01-01 "2015-01-01" 2015-01-01 12:00:00 "2015-01-01 12:00:00" * * @param date * * @param isshort * @return */ public static String getStringDate(Date date, boolean isshort) { String dateString; if (isshort) { dateString = sd.format(date); } else { dateString = sdf.format(date); } return dateString; } /** * "2015-01-01" "2015-01-01" * * @param dateString * String 日期 * @return */ public static String getStringDate(String dateString) { return getStringDate(dateString, true); } /** * "2015-01-01 "2015-01-01" 2015-01-01 12:00:00 "2015-01-01 12:00:00" * * @param date * @param isshort * @return */ public static String getStringDate(String dateString, boolean isshort) { if (dateString.equals("")) { return ""; } else { try { if (isshort) { dateString = sd.format(sd.parse(dateString)); } else { dateString = sdf.format(sdf.parse(dateString)); } } catch (ParseException e) { e.printStackTrace(); } return dateString; } } /** * 2015-01-01 2015-01-01 週一 * * @param dateString * @return */ public static String getDateFormat(String dateString) { return getDateFormat(dateString, true); } /** * 2015-01-01 12:00:00 2015-01-01 12:00:00 週一 * * @param dateString * @param ishort * @return */ public static String getDateFormat(String dateString, Boolean ishort) { String weekString = "周"; return getDateFormat(dateString, ishort, weekString); } /** * 2015-01-01 2015-01-01 週一 2015-01-01 12:00:00 2015-01-01 12:00:00 週一 * * @param dateString * @param ishort * @param weekString * @return */ public static String getDateFormat(String dateString, Boolean ishort, String weekString) { if (dateString.equals("")) { return ""; } else { String[] weekDays = { "日", "一", "二", "三", "四", "五", "六" }; Calendar cal = Calendar.getInstance(); try { if (ishort) { dateString = sd.format(sd.parse(dateString)); cal.setTime(sd.parse(dateString)); } else { dateString = sdf.format(sdf.parse(dateString)); cal.setTime(sdf.parse(dateString)); } } catch (ParseException e) { e.printStackTrace(); } int w = cal.get(Calendar.DAY_OF_WEEK) - 1; if (w < 0) { w = 0; } return dateString + " " + weekString + weekDays[w]; } } /** * 2015-01-01 2015年01月01日 * * @param date * @return */ public static String getDateChina(String date) { return getDateChina(date, true); } /** * 2015-01-01 2015年01月01日 2015-01-01 12:00:00 2015年01月01日 12時00分00秒 * * @param date * @param isshort * @return */ public static String getDateChina(String date, Boolean isshort) { try { if (isshort) { date = sd_china.format(sd.parse(date)); } else { date = sdf_china.format(sdf.parse(date)); } } catch (ParseException e) { e.printStackTrace(); } return date; } /** * 2015-12-13 17:13:00 2015年12月13日 17:13 * * @param date * @param isshort * @return */ public static String getDateChina2(String date, Boolean isshort) { try { if (isshort) { date = tt.format(sd.parse(date)); } else { date = tt.format(sdf.parse(date)); } } catch (Exception e) { LogUtil.e("getDateChina2(String date, Boolean isshort)"); } return date; } /** * 2015-01-01 2015-04-01 * * @param date * * @param month * @return */ public static String getMonthDate(String date, int month) { try { calendar = Calendar.getInstance(); calendar.setTime(sd.parse(date)); calendar.add(Calendar.MONTH, month); date = sd.format(calendar.getTime()); } catch (ParseException e) { e.printStackTrace(); } return date; } /** * "2015-01-01" dateString * * @param dateString * * @return */ public static Date String2Date(String dateString) { return String2Date(dateString, true); } /** * "2015-01-01 12:00:00" 2015-01-01 12:00:00 * * @param dateString * @return */ public static Date String2Date(String dateString, boolean isshort) { Date date = null; try { if (isshort) { date = sd.parse(dateString); } else { date = sdf.parse(dateString); } } catch (ParseException e) { e.printStackTrace(); } return date; } /** * "2015-12-23" 2015-10-25 兩個前的倒數第六天 * * @param dateString * @return */ public static String getCalendarBeforerDate(String dateString) { try { Date date = sd.parse(dateString); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.MONTH, -1); calendar.set(Calendar.DAY_OF_MONTH, -5); dateString = sd.format(calendar.getTime()); } catch (ParseException e) { e.printStackTrace(); } return dateString; } /** * "2015-12-23" 2015-02-06 兩個月後的第六天 * * @param dateString * @return */ public static String getCalendarAfterDate(String dateString) { try { Date date = sd.parse(dateString); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.MONTH, 2); calendar.set(Calendar.DAY_OF_MONTH, 6); dateString = sd.format(calendar.getTime()); } catch (ParseException e) { e.printStackTrace(); } return dateString; } /** * 兩個時間之間的時間段 * * @param dBegin * @param dEnd * @return */ public static ArrayList<String> getDateBetweenDates(String dBegin, String dEnd) { ArrayList<String> lDate = new ArrayList<String>(); try { Calendar calBegin = Calendar.getInstance(); Calendar calEnd = Calendar.getInstance(); calBegin.setTime(sd.parse(dBegin)); calBegin.add(Calendar.DAY_OF_MONTH, -1); dBegin = sd.format(calBegin.getTime()); calBegin.setTime(sd.parse(dBegin)); calEnd.setTime(sd.parse(dEnd)); while (sd.parse(dEnd).after(calBegin.getTime())) { calBegin.add(Calendar.DAY_OF_MONTH, 1); lDate.add(sd.format(calBegin.getTime())); } } catch (ParseException e) { e.printStackTrace(); } return lDate; } /** * * @param dateString * @return */ public static Date StringWeek2Date(String dateString) { Date date = null; try { date = sdf_week.parse(dateString); } catch (ParseException e) { e.printStackTrace(); } return date; } /*time1小於或等於time2,返回true * @Title: T1BeforeT2 * @Description: TODO(這裏用一句話描述這個方法的做用) * @return boolean 返回類型 * @throws */ public static boolean T1BeforeT2(String time1, String time2){ boolean flag = true; try { Date date1 = time_format.parse(time1); Date date2 = time_format.parse(time2); if (date1.getTime() > date2.getTime()) { flag = false; } } catch (Exception e) { LogUtil.e(DateUtil.class, "T1BeforeT2", e); } return flag; } /*把yyyy-MM-dd HH:mm:ss格式的時間轉爲yyyy年MM月dd日 HH:mm格式的時間 */ public static String transTime(String time){ try { if (!TextUtils.isEmpty(time)) { Date date = sdf.parse(time); time = time_format.format(date); } } catch (Exception e) { LogUtil.e(DateUtil.class, "transTime", e); } return time; } }
若是須要判斷時間大小,能夠參考如下代碼android
// 判斷開始時間和結束時間的大小 public static Boolean judgeTimeRightful(Context context, String startTime, String endTime) throws Exception { try { Date start = ConverToDate(startTime); Date end = ConverToDate(endTime); if (end.getTime() < start.getTime()) { Util.showToast(context, context .getString(R.string.please_again_select_time)); return false; } } catch (Exception e) { LogUtil.e(Util.class, "judgeTimeRightful()", e); } return true; } // String 轉 Date @SuppressLint("SimpleDateFormat") public static Date ConverToDate(String time) throws Exception { DateFormat df = null; try { df = new SimpleDateFormat("yyyy年MM月dd日"); return df.parse(time); } catch (ParseException e) { LogUtil.e(Util.class, "ConverToDate()", e); } return df.parse(""); }