import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import javax.xml.datatype.DatatypeConfigurationException; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; public class DateHelper extends DateUtils { public static final String DEF_PATTERN = "yyyy-MM-dd HH:mm:ss"; public static final String[] DATE_PATTERNS = { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM-dd HH", "yyyy-MM-dd", "yyyy-MM", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM/dd HH", "yyyy/MM/dd", "yyyy/MM" }; /** * 格式化输出 * @param dt * @param pattern * @return */ public static String format(Date dt) { return format(dt, DEF_PATTERN); } /** * 格式化输出 * @param dt * @param pattern * @return */ public static String format(Date dt, String pattern) { SimpleDateFormat simpleDateFormat; if (dt == null) return null; simpleDateFormat = new SimpleDateFormat(pattern); return simpleDateFormat.format(dt); } /** * Date 转换成 XMLGregorianCalendar * @param dt * @return * @throws DatatypeConfigurationException */ public static XMLGregorianCalendar toXmlDate(Date dt) throws DatatypeConfigurationException { if (dt == null) return null; GregorianCalendar cal = new GregorianCalendar(); cal.setTime(dt); return DatatypeFactory.newInstance().newXMLGregorianCalendar(cal); } /** * XMLGregorianCalendar 转换成 Date * @param dt * @return */ public static Date toDate(XMLGregorianCalendar cal) { if (cal == null) return null; return cal.toGregorianCalendar().getTime(); } /** * 日期转换 * @param dateValue * @return * @throws ParseException */ public static Date parseDateIgnoreError(final String dateValue) { try { return parseDate(dateValue, DATE_PATTERNS); } catch (ParseException e) { return null; } } /** * 日期转换 * @param dateValue * @return * @throws ParseException */ public static Date parseDate(final String dateValue) throws ParseException { return parseDate(dateValue, DATE_PATTERNS); } /** * 获取两个日期之间的相差秒数 * @param beginDate * @param endDate * @return */ public static long differSeconds(Date beginDate, Date endDate) { long offsetTime = endDate.getTime() - beginDate.getTime(); return Math.abs(offsetTime / 1000); } /** * 获取两个日期之间的相差分钟 * @param beginDate * @param endDate * @return */ public static long differMinutes(Date beginDate, Date endDate) { return differSeconds(beginDate, endDate) / 60; } /** * 获取两个日期之间的相差小时 * @param beginDate * @param endDate * @return */ public static long differHours(Date beginDate, Date endDate) { return differMinutes(beginDate, endDate) / 60; } /** * 获取两个日期之间的相差天数 * @param beginDate * @param endDate * @return */ public static long differDays(Date beginDate, Date endDate) { return differHours(beginDate, endDate) / 24; } /** * 获取当前时间的年月日时分秒 拼接的字符串 * @return */ public static String dateFullNumberStr(){ StringBuffer sb = new StringBuffer(); Calendar cal = Calendar.getInstance(); String year = completeStr(String.valueOf(cal.get(Calendar.YEAR))); //获取年份 String month = completeStr(String.valueOf(cal.get(Calendar.MONTH)+1));//获取月份 String day = completeStr(String.valueOf(cal.get(Calendar.DATE))); String hour = completeStr(String.valueOf(cal.get(Calendar.HOUR_OF_DAY))); String min = completeStr(String.valueOf(cal.get(Calendar.MINUTE))); String second = completeStr(String.valueOf(cal.get(Calendar.SECOND))); sb.append(year); sb.append(month); sb.append(day); sb.append(hour); sb.append(min); sb.append(second); return sb.toString(); } public static String completeStr(String str){ StringBuilder sb = new StringBuilder(); if (StringUtils.isBlank(str)) return ""; if (StringUtils.defaultString(str).length() == 1) { sb.append("0"); } sb.append(str); return sb.toString(); } }
时间差值计算
最新推荐文章于 2023-04-18 11:33:15 发布