常用的日期格式化工具类
/**
* 日期格式化工具类
*
*/
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);
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;
}
}