import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Map; public class DateUtil { public static final String DEFAULT_FORMAT_PATTERN = "yyyy/MM/dd HH:mm:ss"; public static final String SHORT_FORMAT_PATTERN = "yyyy/MM/dd"; public static final String TIME_PATTERN = "HH:mm:ss"; private DateUtil() { } public static final Date stringConvertDate(String aMask, String strDate) { if (strDate == null || strDate.trim().length() < 1) return null; SimpleDateFormat df = null; Date date = null; df = new SimpleDateFormat(aMask); try { date = df.parse(strDate); } catch (ParseException pe) { pe.printStackTrace(); } return date; } public static String getTimeNow(Date theTime) { return formatDateToString(TIME_PATTERN, theTime); } public static Date getZoneHour(Date date) { if (date == null) throw new java.lang.NullPointerException(); Calendar calendar = new GregorianCalendar(); calendar.setTime(date); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } public static Date getEndHour(final Date date) { if (date == null) throw new java.lang.NullPointerException(); Calendar calendar = new GregorianCalendar(); calendar.setTime(date); calendar.set(Calendar.HOUR_OF_DAY, 23); calendar.set(Calendar.MINUTE, 59); calendar.set(Calendar.SECOND, 59); calendar.set(Calendar.MILLISECOND, 999); return calendar.getTime(); } public static Date getTime(int hour, int min, int sec, final Date date) { if (date == null) throw new java.lang.NullPointerException(); if (!(hour <= 23 && hour >= 0 && min <= 59 && min >= 0 && sec <= 59 && sec >= 0)) throw new java.lang.IllegalArgumentException(); Calendar calendar = new GregorianCalendar(); calendar.setTime(date); calendar.set(Calendar.HOUR_OF_DAY, hour); calendar.set(Calendar.MINUTE, min); calendar.set(Calendar.SECOND, sec); calendar.set(Calendar.MILLISECOND, 0); return calendar.getTime(); } public static String formatDateToString(String pattern, Date date) { if (date == null || pattern == null) return ""; return new SimpleDateFormat(pattern).format(date); } public static String formatDateToDefaultString(Date date) { // yyyy-MM-dd HH:mm:ss return formatDateToString(DEFAULT_FORMAT_PATTERN, date); } public static String formatDateToStringWithWeek(Date date) { Calendar ca = new GregorianCalendar(); ca.setTime(date); return formatDateToString(SHORT_FORMAT_PATTERN, date) + " " + getWeek(ca.get(Calendar.DAY_OF_WEEK)); } public static String formatDateToShortString(Date date) { return formatDateToString(SHORT_FORMAT_PATTERN, date); } public static Date formatDate(String pattern, Date date) { Date d = null; String dateStr = formatDateToString(pattern, date); d = stringConvertDate(pattern, dateStr); return d; } private static final SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd"); public Object convertValue(Map ognlContext, Object value, Class toType) { Object result = null; if (toType == Date.class) { result = doConvertToDate(value); } else if (toType == String.class) { result = doConvertToString(value); } return result; } private Date doConvertToDate(Object value) { Date result = null; if (value instanceof String) { try { result = sdf.parse((String) value); } catch (ParseException e) { // throw new XworkException("Could not parse date", e); } } else if (value instanceof Object[]) { Object[] array = (Object[]) value; if ((array != null) && (array.length >= 1)) { value = array[0]; result = doConvertToDate(value); } } else if (Date.class.isAssignableFrom(value.getClass())) { result = (Date) value; } return result; } /** *
* 把对象转换为字符串
* * @param value * @return result
*/ private String doConvertToString(Object value) { String result = null; if (value instanceof Date) { result = sdf.format(value); } return result; } /**
* 概要
* 取得年
* * @param date * @return
*/ public static int getYear(Date date) { if (date == null) throw new java.lang.NullPointerException(); Calendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.YEAR); } /** *
* 概要
* 取得月份
* * @param date * @return
*/ public static int getMonth(Date date) { if (date == null) throw new java.lang.NullPointerException(); Calendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.MONTH); } /** * *
* 概要
* 取得日
* * @param date * @return
*/ public static int getDay(Date date) { if (date == null) throw new java.lang.NullPointerException(); Calendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.DAY_OF_MONTH); } public static String getWeek(Date date) { if (date == null) throw new java.lang.NullPointerException(); Calendar ca = new GregorianCalendar(); ca.setTime(date); return getWeek(ca.get(Calendar.DAY_OF_WEEK)); } public static int getHour(Date date) { if (date == null) throw new java.lang.NullPointerException(); Calendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.HOUR); } public static int getMinute(Date date) { if (date == null) throw new java.lang.NullPointerException(); Calendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.MINUTE); } public static int getSectond(Date date) { if (date == null) throw new java.lang.NullPointerException(); Calendar ca = new GregorianCalendar(); ca.setTime(date); return ca.get(Calendar.SECOND); } public static String getWeek(Integer id) { if (id == null) return ""; for (Week week : Week.values()) { if (week.id.equals(id)) return week.getName(); } return ""; } public static boolean isDate(String aMask, String strDate) { Date date = DateUtil.stringConvertDate(aMask, strDate); return date == null ? false : true; } }
java 时间工具类
最新推荐文章于 2024-07-27 23:32:11 发布