工具类-DateUtil

  package com.specl.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class DateUtil {
	private static final SimpleDateFormat shortsdf = new SimpleDateFormat("yyyy-MM-dd");
	private static final SimpleDateFormat longsdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	/**
	 * 时间格式化(到日期)
	 * 
	 * @param date
	 * @return
	 */
	public static String formatDate(Date date) {
		String newDate = "";
		if (date == null)
			return newDate;
		try {
			newDate = shortsdf.format(date);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return newDate;
	}

	/**
	 * 时间格式化(到秒)
	 * 
	 * @param obj
	 * @return
	 */
	public static String formatTime(Date date) {
		String newDate = "";
		if (date == null)
			return newDate;
		try {
			newDate = longsdf.format(date);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return newDate;
	}
	

    /**
     * 时间格式化(到秒)
     * 
     * @param ticks 时间刻度
     * @return
     */
    public static String formatTime(Long ticks) {
        String newDate = "";
        if (ticks == null)
            return newDate;
        try {
            Date date=new Date(ticks);
            newDate = longsdf.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return newDate;
    }

	public static String formatTimeMin(Date date) {
		String newDate = "";
		if (date == null)
			return newDate;
		try {
			newDate = shortsdf.format(date);
		} catch (Exception e) {
			e.printStackTrace();
		}

		return newDate;
	}

	public static Date string2Date(String s, int type) {
		if (s == null) {
			return null;
		}
		Calendar cal = null;
		String a[] = s.split("-| |:");
		try {
			if (a.length >= 3) {
				cal = Calendar.getInstance();
				cal.set(Calendar.YEAR, Integer.valueOf(a[0]));
				cal.set(Calendar.MONTH, Integer.valueOf(a[1]) - 1);
				cal.set(Calendar.DATE, Integer.valueOf(a[2]));
			}
			if (type == 0) {
				if (a.length >= 5) {
					cal.set(Calendar.HOUR_OF_DAY, Integer.valueOf(a[3]));
					cal.set(Calendar.MINUTE, Integer.valueOf(a[4]));
					if (a.length == 6) {
						cal.set(Calendar.SECOND, Integer.valueOf(a[5]));
					}
				} else {
					cal.set(Calendar.HOUR_OF_DAY, 0);
					cal.set(Calendar.MINUTE, 0);
					cal.set(Calendar.SECOND, 0);
				}
			} else if (type == 1) {
				cal.set(Calendar.HOUR_OF_DAY, 0);
				cal.set(Calendar.MINUTE, 0);
				cal.set(Calendar.SECOND, 0);
			} else if (type == 2) {
				cal.set(Calendar.HOUR_OF_DAY, 23);
				cal.set(Calendar.MINUTE, 59);
				cal.set(Calendar.SECOND, 59);
			}
		} catch (Exception e) {

		}
		if (cal != null) {
			return cal.getTime();
		}
		return null;
	}

	public static Date stringDateMin(String s) {
		Date date = null;

		try {
			date = shortsdf.parse(s);
		} catch (ParseException e) {
		}
		return date;
	}

	public static Date stringDate(String s) {
		Date date = null;

		try {
			date = longsdf.parse(s);
		} catch (ParseException e) {
		}
		return date;
	}

	
	/**
	 * 以短格式格式化时间,实例:2010-09-19
	 * @param time 时间刻度
	 * @return 格式化后的时间
	 * @author zhengrunjin @ 2010-09-19
	 */
	public static String StringDateShortFormat(Long time){
		if (time != null) {
			return shortsdf.format(new Date(time));
		}
		return null;
	}
	
	public static String StringDate(Long l) {
		if (l != null) {
			return longsdf.format(new Date(l));
		}
		return null;
	}
	
	/**
	 * 返回于指定日期间隔一定天数的日期
	 * @param date
	 * @param days
	 * @return
	 */
	public static Date getSpecDate(Date date, int days) {
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - days);
		return calendar.getTime();
	}

	public static boolean after(Date date1, Date date2) {
		Calendar dc1 = Calendar.getInstance();
		dc1.setTime(date1);
		Calendar dc2 = Calendar.getInstance();
		dc2.setTime(date2);
		return dc1.after(dc2);
	}

	public static boolean before(Date date1, Date date2) {
		Calendar dc1 = Calendar.getInstance();
		dc1.setTime(date1);
		Calendar dc2 = Calendar.getInstance();
		dc2.setTime(date2);
		return dc1.before(dc2);
	}

	
	//日期转换
	public static java.sql.Date getBeforeAfterDate(String datestr, int day) {  
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
        java.sql.Date olddate = null;  
        try {  
            df.setLenient(false);  
            olddate = new java.sql.Date(df.parse(datestr).getTime());  
        } catch (ParseException e) {  
            throw new RuntimeException("日期转换错误");  
       }  
        Calendar cal = new GregorianCalendar();  
        cal.setTime(olddate);  
  
        int Year = cal.get(Calendar.YEAR);  
        int Month = cal.get(Calendar.MONTH);  
        int Day = cal.get(Calendar.DAY_OF_MONTH);  
  
        int NewDay = Day + day;  
  
        cal.set(Calendar.YEAR, Year);  
        cal.set(Calendar.MONTH, Month);  
        cal.set(Calendar.DAY_OF_MONTH, NewDay);  
 
        return new java.sql.Date(cal.getTimeInMillis());  
	}

	
	//参数日期+小时数得到新日期
	//type:1=天数 ,2=小时数 3=月数
	public static Date getNewDate(Date d,int num,int type){
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(d);
		switch (type) {
			case 1:
				calendar.add(Calendar.DAY_OF_YEAR, num);
				break;
			case 2:
				calendar.add(Calendar.HOUR_OF_DAY, num);
				break;
			case 3:
                calendar.add(Calendar.MONTH, num);
                break;
		}
		
		return calendar.getTime();
	}

	/**
	 * 两个日期相差的天数,只精确到天
	 * @param date1
	 * @param date2
	 * @return
	 */
	public static Integer diffDays(Date date1, Date date2){
		Calendar calendar1 = Calendar.getInstance();
		calendar1.setTime(date1);
		
		Calendar calendar2 = Calendar.getInstance();
		calendar2.setTime(date2);
		
		int days1 = calendar1.get(Calendar.DAY_OF_YEAR);
		int days2 = calendar2.get(Calendar.DAY_OF_YEAR);
		return Math.abs(days2 - days1);
	}
	/**
	 * 返回一天的结束时间
	 * @param d
	 * @return
	 */
	public String getEndTimeOfDays(String d) {
		return d.trim() + " 23:59:59";
	}
	/**
	 * 去掉日期的时间部分
	 * @param d
	 * @return
	 */
	public String formatDateStr(String d) {
		try {
			return shortsdf.format(longsdf.parse(d));
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return null;
	}


	public static void main(String args[]){
		System.out.println(formatDate(getNewDate(new Date(),1 , 3)));
	}

	/**
	 * 获取过几分钟的时间
	 * @param d
	 * @param num
	 * @param type
	 * @return
	 */
	public static Date getDateAfterSomeMinutes(Date d,int minute){
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(d);
		calendar.add(Calendar.MINUTE, minute);
		return calendar.getTime();
	}
	
	/**
     * 获得过几小时的时间
     * 
     * @param d 需要计算的时间类型
     * @param hours 小时数
     * @return
     */
    public static Date addHours(Date d,int hours){
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(d);
        calendar.add(Calendar.HOUR, hours);
        return calendar.getTime();
    }
    
    public static String formatDate(Date date,String format) {
        String newDate = "";
        if (date == null)
            return newDate;
        try {
            SimpleDateFormat df = new SimpleDateFormat(format);
            newDate = df.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return newDate;
    }
}

你可能感兴趣的:(sql)