时间工具类

来源:互联网 发布:mac安装什么杀毒软件 编辑:程序博客网 时间:2024/06/06 17:54
import java.sql.Timestamp;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import org.apache.commons.lang.StringUtils;import com.landz.batch.commons.constant.DateConstant;/** * 时间工具类 *  * @author Administrator * */public class DateUtil {/*** * 日期转换格式:年月日 */public static final String PATTERN_YYYYMMDD="yyyy-MM-dd";/*** * 日期转换格式:年月日 时分秒 */public static final String PATTERN_YYYYMMDDHHMMSS="yyyy-MM-dd HH:mm:ss";/** * 获取当前时间前N天的日期/获取当前时间前N小时的日期 *  * @param timeDay *            需要减去的天数或小时数 * @param type *            [day]按天计算、[hou]按小时计算 * @return 计算后新日期 */public static Date fomartDate(Integer timeDay, String type) throws Exception {Calendar calendar = Calendar.getInstance();switch (type) {case DateConstant.DAY:calendar.add(Calendar.DATE, -timeDay);break;case DateConstant.HOUR:calendar.add(Calendar.HOUR, -timeDay);break;}return calendar.getTime();}/** * Date类型日期转换成字符串 */public static String formartDateToString(Date date,String pattern) throws Exception{if(date==null)return "";SimpleDateFormat sdf=new SimpleDateFormat(pattern);return sdf.format(date);}/** * String类型日期转换成Date */public static Date formartStringToDate(String dateStr,String pattern) throws Exception{if(StringUtils.isBlank(dateStr))return null;SimpleDateFormat sdf=new SimpleDateFormat(pattern);return sdf.parse(dateStr);}/** * Date类型去掉时分秒 */public static Date formartDateToDate(Date date,String pattern) throws Exception{if(date==null)return null;SimpleDateFormat sdf=new SimpleDateFormat(pattern);String sdate=sdf.format(date);return sdf.parse(sdate);}/** * 获取两个日期之间的天数 * @param maxDate  * @param minDate * @return 相差天数 */public static Long getTwoDateDay(Date maxDate,Date minDate) throws Exception{if(maxDate==null||minDate==null)return 0l;return (maxDate.getTime()-minDate.getTime())/(24*60*60*1000);  }/** * 获取两个日期之间相差月份 *@param maxDate  * @param minDate * @return 相差月 */public static Long getTwoDateMonth(Date maxDate,Date minDate) throws Exception{ int month=0; Calendar cal = Calendar.getInstance(); cal.setTime(maxDate); int maxDateYear=cal.get(Calendar.YEAR); int maxDateMonth=cal.get(Calendar.MONTH); cal.setTime(minDate); int minDateYear=cal.get(Calendar.YEAR); int minDateMonth=cal.get(Calendar.MONTH);  if(maxDateYear==minDateYear){ month=maxDateMonth-minDateMonth; }else{ month=12*(maxDateYear-minDateYear)+maxDateMonth-minDateMonth; } return (long)month;}/** * Timestamp格式日期转换成Date类型 * @param beforeDate Timestamp格式的日期 * @return  Date类型日期 * @throws Exception */public static Date formartTimestampToDate(Timestamp beforeDate) throws Exception{if(beforeDate==null)return null;return new Date(beforeDate.getTime());}  /**      * 获得指定日期的前一天      *       * @param specifiedDay      * @return  * @throws ParseException      * @throws Exception      */      public static String getSpecifiedDayBefore(String specifiedDay) throws ParseException {//可以用new Date().toLocalString()传递参数          Calendar c = Calendar.getInstance();          Date date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);        c.setTime(date);          int day = c.get(Calendar.DATE);          c.set(Calendar.DATE, day - 1);            String dayBefore = new SimpleDateFormat("yyyy-MM-dd").format(c                  .getTime());          return dayBefore;      }  }




时间段内循环遍历每一天

Calendar start = Calendar.getInstance();start.set(2015, 0, 1);//注意,此处月份是从0开始Long startTIme = start.getTimeInMillis();Calendar end = Calendar.getInstance();end.set(2016, 5, 15);Long endTime = end.getTimeInMillis();Long oneDay = 1000 * 60 * 60 * 24l;Long time = startTIme;while (time <= endTime) {Date d = new Date(time);DateFormat df = new SimpleDateFormat("yyyy-MM-dd");System.out.println(df.format(d));time += oneDay;}



0 0