一、得到当前的日期字符串
/**
* @return 日期字符串
*/
public static String getDate() {
return getDate(Calendar.getInstance());
}
二、将日期格式化为指定的字符串
/**
* @param d 日期.
* @param format 输出字符串格式.
* @return 日期字符串
*/
public static String getStringFromDate(Date d, String format) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(d);
}
三、将指定格式的字符串格式化为日期
/**
* @param s 字符串内容.
* @return 日期
*/
public static Date getDateFromString(String s) {
return getDateFromString(s, FORMAT_DATE);
}
/**
* @param s 字符串内容.
* @param format 字符串格式.
* @return 日期
*/
public static Date getDateFromString(String s, String format) {
try {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.parse(s);
} catch (Exception e) {
return null;
}
}
四、得到指定日期的字符串
/**
* @return 日期字符串
*/
public static String getDate() {
return getDate(Calendar.getInstance());
}
/**
* @param calendar 指定的日期.
* @return 日期字符串
*/
public static String getDate(Calendar calendar) {
return getStringFromDate(calendar.getTime(), FORMAT_DATE);
}
五、得到与指定日期相差指定天数的日期字符串
/**
* @param dateString 指定的日期.
* @param period 前后的天数,正值为后, 负值为前.
* @param periodType 周期类别 可以是天、月、年.
* @return 日期字符串
*/
public static String getCertainDate(String dateString, int period, int periodType) {
Calendar calendar = getCalendar(dateString);
switch (periodType) {
case 1: // 天
calendar.add(Calendar.DATE, period);
break;
case 2: // 月
calendar.add(Calendar.MONTH, period);
break;
case 3: // 年
calendar.add(Calendar.MONTH, period * 12);
break;
default:
}
return getStringFromDate(calendar.getTime(), FORMAT_DATE);
}
六、得到本周星期一的日期.
/**
* @return 日期字符串
*/
public static String getFirstDateOfWeek() {
return getFirstDateOfWeek(getDate());
}
七、得到指定日期的星期一的日期
/**
* @param dateString 日期字符串.
* @return 本周星期一的日期
*/
public static String getFirstDateOfWeek(String dateString) {
Calendar calendar = getCalendar(dateString);
int iCount;
if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
iCount = -6;
} else {
iCount = Calendar.MONDAY - calendar.get(Calendar.DAY_OF_WEEK);
}
return getCertainDate(dateString, iCount);
}
八、如果当前日期是周六或者周日,则返回下周一的日期
/**
* @param date 当前日期.
* @return 下周一日期
*/
public static String getWorkDate(final String date) {
Date curDate = getDateFromString(date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(curDate);
int week = calendar.get(Calendar.DAY_OF_WEEK);
if (week == Calendar.SATURDAY) {
calendar.add(Calendar.DATE, 2);
} else if (week == Calendar.SUNDAY) {
calendar.add(Calendar.DATE, 1);
}
return getDate(calendar);
}