简介: 日期函数在开发过程中经常需要用得到,需要转换日期,获取当天日期,本周第一天,本周最后一天等就需要用到这些函数。
清单: 日期工具类 DateUtils.java
private static final String PATTERN_DATE = "yyyy-MM-dd";
private static final String PATTERN_TIME = "HH:mm:ss";
private static final String PATTERN_DATE_TIME = "yyyy-MM-dd HH:mm:ss";
private static final String PATTERN_DATE_CN = "yyyy年MM月dd日";
private static final String PATTERN_TIME_CN = "yyyy年MM月dd日 HH时mm分ss秒";
/**
* <b>字符串日期转换为日期类型 formatted as yyyy-MM-dd</b>
*
* @param date 字符串日期
* @return
* @throws Exception
*/
public static Date parseDate(String dateValue) throws Exception {
if (dateValue == null) {
throw new IllegalArgumentException("date is null");
}
DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);
Date date = null;
try {
date = dateFormat.parse(dateValue);
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
return date;
}
/**
* 字符串日期转换为日期类型
*
* @param dateValue 字符串日期
* @param pattern 日期模式
* @return
* @throws Exception
*/
public static Date parseDate(String dateValue, String pattern) throws Exception {
if (dateValue == null) {
throw new IllegalArgumentException("date is null");
}
if (pattern == null) {
throw new IllegalArgumentException("pattern is null");
}
DateFormat dateFormat = new SimpleDateFormat(pattern);
Date date = null;
try {
date = dateFormat.parse(dateValue);
} catch (ParseException e) {
throw new IllegalArgumentException(e);
}
return date;
}
/**
* <b>日期类型转换为字符串 formatted as yyyy-MM-dd</b>
*
* @param dateValue 日期类型
* @return
* @throws Exception
*/
public static String formatDate(Date dateValue) throws Exception {
if (dateValue == null) {
throw new IllegalArgumentException("date is null");
}
DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);
String date = null;
try {
date = dateFormat.format(dateValue);
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException(e);
}
return date;
}
/**
* 日期类型转换为字符串
*
* @param dateValue 日期类型
* @param pattern 日期模式
* @return
* @throws Exception
*/
public static String formatDate(Date dateValue, String pattern) throws Exception {
if (dateValue == null) {
throw new IllegalArgumentException("date is null");
}
if (pattern == null) {
throw new IllegalArgumentException("pattern is null");
}
DateFormat dateFormat = new SimpleDateFormat(pattern);
String date = null;
try {
date = dateFormat.format(dateValue);
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException(e);
}
return date;
}
/**
* <b>获取当前日期:formatted as yyyy-MM-dd</b>
*
* @return
*/
public static String getCurrentDate() throws Exception {
DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);
return dateFormat.format(new java.util.Date());
}
/**
* <b>获取当前日期:</b>
*
* @param pattern 日期模式
* @return
*/
public static String getCurrentDate(String pattern) throws Exception {
if (pattern == null) {
throw new IllegalArgumentException("pattern is null");
}
DateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.format(new java.util.Date());
}
/**
* <b>获取年份:根据日期</b>
*
* @param date 日期
* @return
*/
public static String getYear(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return String.valueOf(calendar.get(Calendar.YEAR));
}
/**
* <b>获取月份:根据日期</b>
*
* @param date
* @return
*/
public static String getMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return String.valueOf(calendar.get(Calendar.MONTH) + 1);
}
/**
* <b>获取日:根据日期</b>
*
* @param date
* @return
*/
public static String getDay(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return String.valueOf(calendar.get(Calendar.DATE));
}
/**
* <b>获取本月最后一天:formatted as yyyy-MM-dd</b>
*
* @return
*/
public static String getLastDayOfMonth() {
Calendar calendar = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);
calendar.set(Calendar.DATE, 1);
calendar.roll(Calendar.DATE, -1);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取本月最后一天:</b>
* @param date 日期
* @param pattern 日期模式
* @return
*/
public static String getLastDayOfMonth(Date date, String pattern) {
Calendar calendar = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat(pattern);
calendar.setTime(date);
calendar.set(Calendar.DATE, 1);
calendar.roll(Calendar.DATE, -1);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取本月第一天:formatted as yyyy-MM-dd</b>
*
* @return
*/
public static String getFirstDayOfMonth() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DATE, 1);
DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取本月第一天:</b>
* @param date 日期
* @param pattern 日期模式
* @return
*/
public static String getFirstDayOfMonth(Date date, String pattern) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DATE, 1);
DateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取本周星期一:formatted as yyyy-MM-dd</b>
*
* @return
*/
public static String getMondayOfWeek() {
Calendar calendar = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取星期一:根据指定日期和日期模式</b>
*
* @param date 日期
* @param pattern 日期模式
* @return
*/
public static String getMondayOfWeek(Date date, String pattern) {
Calendar calendar = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat(pattern);
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取本周星期天:formatted as yyyy-MM-dd</b>
* @return
*/
public static String getSundayOfWeek() {
Calendar calendar = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
calendar.add(Calendar.WEEK_OF_YEAR, 1);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取星期天:根据指定日期和日期模式</b>
*
* @param date 日期
* @param pattern 日期模式
* @return
*/
public static String getSundayOfWeek(Date date, String pattern) {
Calendar calendar = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat(pattern);
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
calendar.add(Calendar.WEEK_OF_YEAR, 1);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取上周星期天:formatted as yyyy-MM-dd</b>
* @return
*/
public static String getSundayOfLastWeek() {
DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, 1);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取上周星期天:</b>
*
* @param date 日期
* @param pattern 日期模式
* @return
*/
public static String getSundayOfLastWeek(Date date, String pattern) {
DateFormat dateFormat = new SimpleDateFormat(pattern);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_WEEK, 1);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取上周星期一:formatted as yyyy-MM-dd</b>
* @return
*/
public static String getMondayOfLastWeek() {
DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.WEEK_OF_MONTH, -1);
calendar.set(Calendar.DAY_OF_WEEK, 2);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取上周星期一:</b>
*
* @param date 日期
* @param pattern 日期模式
* @return
*/
public static String getMondayOfLastWeek(Date date, String pattern) {
DateFormat dateFormat = new SimpleDateFormat(pattern);
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.WEEK_OF_MONTH, -1);
calendar.set(Calendar.DAY_OF_WEEK, 2);
calendar.setTime(date);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取上月第一天:formatted as yyyy-MM-dd</b>
* @return
*/
public static String getFirstDayOfLastMonth() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
calendar.set(Calendar.DATE, 1);
DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取上月第一天:</b>
*
* @param date 日期
* @param pattern 日期模式
* @return
*/
public static String getFirstDayOfLastMonth(Date date, String pattern) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
calendar.set(Calendar.DATE, 1);
calendar.setTime(date);
DateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取上月最后一天:formatted as yyyy-MM-dd</b>
* @return
*/
public static String getLastDayOfLastMonth() {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
calendar.roll(Calendar.DATE, -1);
DateFormat dateFormat = new SimpleDateFormat(PATTERN_DATE);
return dateFormat.format(calendar.getTime());
}
/**
* <b>获取上月最后一天:</b>
*
* @param date 日期
* @param pattern 日期模式
* @return
*/
public static String getLastDayOfLastMonth(Date date, String pattern) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -1);
calendar.roll(Calendar.DATE, -1);
calendar.setTime(date);
DateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.format(calendar.getTime());
}