一些和时间有关的小方法
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import org.apache.commons.lang.time.DateUtils;public class DateUtil{ /** * 获得传入时间所在周的第一天时间 * @param seeddate * @return * @throws NumberFormatException * @throws ParseException */public static String getFirstDayOfWeek(String seeddate) throws NumberFormatException, ParseException{String finalstr = "";String numOfweek = DayOfWeek(seeddate);finalstr = getEndDateByDay(seeddate,1-Integer.parseInt(numOfweek),"yyyy-MM-dd");return finalstr;}/** * 获得传入时间所在周的最后一天时间 * @param seeddate * @return * @throws NumberFormatException * @throws ParseException */public static String getLastDayOfWeek(String seeddate) throws NumberFormatException, ParseException{String finalstr = "";String numOfweek = DayOfWeek(seeddate);finalstr = getEndDateByDay(seeddate,7-Integer.parseInt(numOfweek),"yyyy-MM-dd");return finalstr;}/** * 获得当前时间是所在星期的第几天(第一天为星期天) * @param seeddate * @return */public static String DayOfWeek(String seeddate){String finalstr = "";try {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar seedCalendar = Calendar.getInstance();seedCalendar.setTime(sdf.parse(seeddate));int DayOfWeek = seedCalendar.get(Calendar.DAY_OF_WEEK);return String.valueOf(DayOfWeek);} catch (Exception e) {e.printStackTrace();return null;}} /** * 获得传入日期所在年份 * @param seeddate * @return */ public static String getYearOfDate(Date seeddate) { String finalstr = ""; try { Calendar seedCalendar = Calendar.getInstance(); seedCalendar.setTime(seeddate); finalstr = String.valueOf(seedCalendar.get(Calendar.YEAR)); return finalstr; } catch (Exception e) { e.printStackTrace(); return null; } } /** * 获得所在日期所在月份 * @param seeddate * @return */ public static String getMonthOfDate(Date seeddate) { String finalstr = ""; try { Calendar seedCalendar = Calendar.getInstance(); seedCalendar.setTime(seeddate); finalstr = String.valueOf(seedCalendar.get(Calendar.MONTH) + 1); return finalstr; } catch (Exception e) { e.printStackTrace(); return null; } } /** * 获得传入日期所在年份的月份的最后一天 * @param seeddate * @return * @throws ParseException */ public static String getLastDayOfMonthOfYear(String seeddate) throws ParseException { String finalstr = ""; try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar seedCalendar = Calendar.getInstance(); seedCalendar.setTime(sdf.parse(seeddate)); int MaxDayOfMonthOfYear = seedCalendar .getActualMaximum(Calendar.DATE); finalstr = seedCalendar.get(Calendar.YEAR) + "-" + (seedCalendar.get(Calendar.MONTH) + 1) + "-" + MaxDayOfMonthOfYear; return finalstr; } catch (Exception e) { e.printStackTrace(); return null; } } /** * 获得传入日期所在年份的月份的第一天 * @param seeddate * @return * @throws ParseException */ public static String getFirstDayOfMonthOfYear(String seeddate) throws ParseException { String finalstr = ""; try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar seedCalendar = Calendar.getInstance(); seedCalendar.setTime(sdf.parse(seeddate)); int MaxDayOfMonthOfYear = seedCalendar .getActualMaximum(Calendar.DATE); finalstr = seedCalendar.get(Calendar.YEAR) + "-" + (seedCalendar.get(Calendar.MONTH) + 1) + "-01"; return finalstr; } catch (Exception e) { e.printStackTrace(); return null; } } /** * 获得距离开始日期之后指定月份数的日期 * * @param Begindate * @param monthNum * @param dateformat * @return * @throws ParseException */ public static String getEndDateByYear(String Begindate, int yearNum, String dateformat) throws ParseException { String finalstr = ""; Calendar endCalender = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat(dateformat); endCalender.setTime(sdf.parse(Begindate)); endCalender.add(Calendar.YEAR, yearNum); Date endDate = endCalender.getTime(); finalstr = sdf.format(endDate); return finalstr; } /** * 获得距离开始日期之后指定月份数的日期 * * @param Begindate * @param monthNum * @param dateformat * @return * @throws ParseException */ public static String getEndDateByMonth(String Begindate, int monthNum, String dateformat) throws ParseException { String finalstr = ""; Calendar endCalender = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat(dateformat); endCalender.setTime(sdf.parse(Begindate)); endCalender.add(Calendar.MONTH, monthNum); Date endDate = endCalender.getTime(); finalstr = sdf.format(endDate); return finalstr; } /** * 获得距离开始日期之后指定年份数的日期 ** @param Begindate * @param monthNum * @param dateformat * @return * @throws ParseException */public static String getEndDateByDay(String Begindate, int dayNum,String dateformat) throws ParseException {String finalstr = "";Calendar endCalender = Calendar.getInstance();SimpleDateFormat sdf = new SimpleDateFormat(dateformat);endCalender.setTime(sdf.parse(Begindate));endCalender.add(Calendar.DATE, dayNum);Date endDate = endCalender.getTime();finalstr = sdf.format(endDate);return finalstr;} /** * 获得2个日期之间的月份差 * * @param begindate * @param enddate * @return */ public static int getMonthDistance(Date begindate, Date enddate) { int finalnum = 0; Calendar beginCalendar = Calendar.getInstance(); Calendar endCalendar = Calendar.getInstance(); beginCalendar.setTime(begindate); endCalendar.setTime(enddate); finalnum = endCalendar.get(Calendar.MONTH) - beginCalendar.get(Calendar.MONTH); return finalnum; } /** * 获得2个日期之间的年份差 * * @param begindate * @param enddate * @return */ public static int getYearDistance(Date begindate, Date enddate) { int finalnum = 0; Calendar beginCalendar = Calendar.getInstance(); Calendar endCalendar = Calendar.getInstance(); beginCalendar.setTime(begindate); endCalendar.setTime(enddate); if (beginCalendar.get(Calendar.YEAR) > endCalendar.get(Calendar.YEAR)) { finalnum = beginCalendar.get(Calendar.YEAR) - endCalendar.get(Calendar.YEAR); } else { finalnum = endCalendar.get(Calendar.YEAR) - beginCalendar.get(Calendar.YEAR); } return finalnum; } /** * 以开始时间计算结束时间 * @param day 具体天数 0:当天 1:第二天依此类推 * @return 第二天的零时 */ public static Date getEndDatetime(int day) { Calendar c = Calendar.getInstance();c.add(Calendar.DAY_OF_MONTH, +day);Calendar date = DateUtils.round(c, Calendar.DAY_OF_MONTH);String datetime = StringUtil.dateToStr(new Date(date.getTimeInMillis()), "yyyy-MM-dd HH:mm:ss");return StringUtil.strToDate(datetime,"yyyy-MM-dd hh:mm:ss"); }}
页:
[1]