现在的位置: 首页 > 综合 > 正文

java 时间工具类

2013年01月22日 ⁄ 综合 ⁄ 共 5045字 ⁄ 字号 评论关闭
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; } }

抱歉!评论已关闭.