import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; /*** * 日期工具类 * */ public class DateUtil { public static final String ENG_DATE_FROMAT = "EEE, d MMM yyyy HH:mm:ss z"; public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; public static final String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm"; public static final String YYYY_MM_DD = "yyyy-MM-dd"; public static final String YYYY = "yyyy"; public static final String MM = "MM"; public static final String DD = "dd"; /** * 时间对象转换成字符串 * @param date * @param formatStr * @return */ public static String dateToString(Date date, String formatStr) { String strDate = ""; SimpleDateFormat sdf = new SimpleDateFormat(formatStr); strDate = sdf.format(date); return strDate; } /** * 得到系统当前时间 * @return */ public static Date getCurrentDate(){ return new Date(); } /** * 比较两个日期相差天数 * @param startDate 开始日期 * @param endDate 结束日期 * @return */ public static int daysOfDate(Date startDate, Date endDate) { if (startDate == null) throw new RuntimeException( "input parametars beginDate can't be null!"); if (endDate == null) throw new RuntimeException( "input parametars endDate can't be null!"); Calendar calBegin = Calendar.getInstance(); Calendar calEnd = Calendar.getInstance(); Calendar cal = Calendar.getInstance(); cal.setTime(startDate); calBegin.clear(); calBegin.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)); cal.setTime(endDate); calEnd.clear(); calEnd.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)); long times = calEnd.getTimeInMillis() - calBegin.getTimeInMillis(); Long days = new Long(times / (24 * 60 * 60 * 1000)); return days.intValue(); } /** * 获取某年的第几周的开始日期 * @param year * @param week * @return */ public static Date getFirstDayOfWeek(int year, int week) { Calendar c = new GregorianCalendar(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, Calendar.JANUARY); c.set(Calendar.DATE, 1); Calendar cal = (GregorianCalendar) c.clone(); cal.add(Calendar.DATE, week * 7); return getFirstDayOfWeek(cal.getTime()); } /** * 获取某年的第几周的结束日期 * @param year * @param week * @return */ public static Date getLastDayOfWeek(int year, int week) { Calendar c = new GregorianCalendar(); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, Calendar.JANUARY); c.set(Calendar.DATE, 1); Calendar cal = (GregorianCalendar) c.clone(); cal.add(Calendar.DATE, week * 7); return getLastDayOfWeek(cal.getTime()); } /** * 获取当前时间所在周的开始日期 * @param date * @return */ public static Date getFirstDayOfWeek(Date date) { Calendar c = new GregorianCalendar(); c.setFirstDayOfWeek(Calendar.MONDAY); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday return c.getTime(); } /** * 获取当前时间所在周的结束日期 * @param date * @return */ public static Date getLastDayOfWeek(Date date) { Calendar c = new GregorianCalendar(); c.setFirstDayOfWeek(Calendar.MONDAY); c.setTime(date); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday return c.getTime(); } }
日期工具类
猜你喜欢
转载自nxdjava.iteye.com/blog/2390222
今日推荐
周排行