日期转换帮助类

/**
 * 转换微博时间的工具类
 * 
 * 
 * 
 */
public class ConvertDateUtil {
	/**
	 * 转换字符类型的时间为日期
	 * 
	 * @param time
	 *            1. 60分钟前 
	 *            2. 今天 13:05 
	 *            3. 1月28日 12:02  
	 *            4. 1小时前  
	 *            5. 54秒前 
	 *            6. 3天前 
	 *            7. 2014-7-12 00:05
	 *            8. 2013-4-12 10:05:40
	 * @return
	 */
	public static String FOMAT_MINIUTE_BEFORE = "分钟前";
	public static String FOMAT_TODAY_TIME = "今天";
	public static String FOMAT_DATE_TIME = "日";
	public static String FOMAT_HOUR_BEFORE = "小时前";
	public static String FOMAT_SECOND_BEFORE = "秒前";
	public static String FOMAT_DAY_BEFORE = "天前";
	public static Date convert(String time) {
		try {
			time = time.trim();
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
			SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
			Date today = new Date();
			Calendar c = Calendar.getInstance();
			if (time.contains(FOMAT_MINIUTE_BEFORE)) {
				int miniutes = Integer.parseInt(time.substring(0,time.indexOf(FOMAT_MINIUTE_BEFORE)).trim());
				return new Date(c.getTime().getTime() - miniutes * 60 * 1000);
			} else if (time.contains(FOMAT_TODAY_TIME)) {
				String hour = time.substring(FOMAT_TODAY_TIME.length(),time.length()).trim();
				return sdf2.parse(c.get(Calendar.YEAR) + "-"+ c.get(Calendar.MONTH) + "-" + c.get(Calendar.DATE)+ " " + hour);
			} else if (time.contains(FOMAT_DATE_TIME)) {
				time = time.replace("月", "-").replace("日", "");
				return sdf2.parse(c.get(Calendar.YEAR) + "-" + time);
			} else if(time.contains(FOMAT_HOUR_BEFORE)){
				int hours = Integer.parseInt(time.substring(0,time.indexOf(FOMAT_HOUR_BEFORE)).trim());
				return new Date(today.getTime() - hours * 60 * 60 * 1000);
			}else if(time.contains(FOMAT_SECOND_BEFORE)){
				int seconds = Integer.parseInt(time.substring(0,time.indexOf(FOMAT_SECOND_BEFORE)).trim());
				return new Date(today.getTime() - seconds * 1000);
			}else if(time.contains(FOMAT_DAY_BEFORE)){
				int days = Integer.parseInt(time.substring(0,time.indexOf(FOMAT_DAY_BEFORE)).trim());
				return new Date(today.getTime() - days * 24 * 60 * 60 * 1000);
			}else if(time.split("-").length==3&&time.split(":").length==2){
				return sdf2.parse(time);
			}else if(time.split("-").length==3&&time.split(":").length==3){
				return sdf.parse(time);
			}else if(time.split("-").length==3&&time.indexOf(":")< 0){
				return sdf3.parse(time);
			}else{
				return new Date();
			}
		} catch (Exception e) {
			return new Date();
		}
	}

	public static void main(String[] args) throws ParseException {
		System.out.println(ConvertDateUtil.convert(" 60 分钟前 "));
		System.out.println(ConvertDateUtil.convert(" 今天 13:05 "));
		System.out.println(ConvertDateUtil.convert(" 1月28日  12:02 "));
		System.out.println(ConvertDateUtil.convert(" 1小时前 "));
		System.out.println(ConvertDateUtil.convert(" 54秒前 "));
		System.out.println(ConvertDateUtil.convert(" 3天前 "));
		System.out.println(ConvertDateUtil.convert("2014-7-12 00:05"));
		System.out.println(ConvertDateUtil.convert("2013-4-12 10:05:40"));;
		System.out.println(ConvertDateUtil.convert("2013-4-12"));;
	}
}

猜你喜欢

转载自m635674608.iteye.com/blog/2208544