DateUtil工具类解析(SimpleDateFormat的使用)

来源:互联网 发布:淘宝上如何搜发票 编辑:程序博客网 时间:2024/05/17 01:31
parse()返回的是一个Date类型数据,format返回的是一个StringBuffer类型的数据parse方法可以把String型的字符串转换成特定格式的Date类型    
format方法可以把Date型的字符串转换成特定格式的String类型
private final static SimpleDateFormat sfDate              = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");private final static SimpleDateFormat sfDateFirst         = new SimpleDateFormat("yyyy-MM-dd 00:00:00");private final static SimpleDateFormat sfDateLast          = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
 //获得长字符串日期的当日凌晨 2020-12-12 11:23:30  转换为 2020-12-12 00:00:00
 public static String getDailyFirst(String str) throws ParseException {
//通过parse方法将字符串转换为格式为yyyy-MM-dd HH:mm:ss的Date类型
        Date strDate = sfDate.parse(str);
//通过format方法将Date类型转换为yyyy-MM-dd 00:00:00格式的String类型        return sfDateFirst.format(strDate);    }
     //获取某天凌晨零点,-1前一天,1后一天
      private final static SimpleDateFormat sdfZero= new SimpleDateFormat("yyyy-MM-dd 00:00:00");
      public static String preDaysWeeHour(int days) {        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.DAY_OF_MONTH, days);        return sdfZero.format(calendar.getTime());    }
JAVA 时间差距,两个时间相差多少天,时,分,秒
import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/*** 时间相距* @author Ben* @version 1.0* @date 2009-10-21 16:38:51*/public class DateDistance {        /**     * 两个时间之间相差距离多少天     * @param one 时间参数 1:     * @param two 时间参数 2:     * @return 相差天数     */    public static long getDistanceDays(String str1, String str2) throws Exception{        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");        Date one;        Date two;        long days=0;        try {            one = df.parse(str1);            two = df.parse(str2);            long time1 = one.getTime();            long time2 = two.getTime();            long diff ;            if(time1<time2) {                diff = time2 - time1;            } else {                diff = time1 - time2;            }            days = diff / (1000 * 60 * 60 * 24);        } catch (ParseException e) {            e.printStackTrace();        }        return days;    }        /**     * 两个时间相差距离多少天多少小时多少分多少秒     * @param str1 时间参数 1 格式:1990-01-01 12:00:00     * @param str2 时间参数 2 格式:2009-01-01 12:00:00     * @return long[] 返回值为:{天, 时, 分, 秒}     */    public static long[] getDistanceTimes(String str1, String str2) {        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        Date one;        Date two;        long day = 0;        long hour = 0;        long min = 0;        long sec = 0;        try {            one = df.parse(str1);            two = df.parse(str2);            long time1 = one.getTime();            long time2 = two.getTime();            long diff ;            if(time1<time2) {                diff = time2 - time1;            } else {                diff = time1 - time2;            }            day = diff / (24 * 60 * 60 * 1000);            hour = (diff / (60 * 60 * 1000) - day * 24);            min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);            sec = (diff/1000-day*24*60*60-hour*60*60-min*60);        } catch (ParseException e) {            e.printStackTrace();        }        long[] times = {day, hour, min, sec};        return times;    }    /**     * 两个时间相差距离多少天多少小时多少分多少秒     * @param str1 时间参数 1 格式:1990-01-01 12:00:00     * @param str2 时间参数 2 格式:2009-01-01 12:00:00     * @return String 返回值为:xx天xx小时xx分xx秒     */    public static String getDistanceTime(String str1, String str2) {        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        Date one;        Date two;        long day = 0;        long hour = 0;        long min = 0;        long sec = 0;        try {            one = df.parse(str1);            two = df.parse(str2);            long time1 = one.getTime();            long time2 = two.getTime();            long diff ;            if(time1<time2) {                diff = time2 - time1;            } else {                diff = time1 - time2;            }            day = diff / (24 * 60 * 60 * 1000);            hour = (diff / (60 * 60 * 1000) - day * 24);            min = ((diff / (60 * 1000)) - day * 24 * 60 - hour * 60);            sec = (diff/1000-day*24*60*60-hour*60*60-min*60);        } catch (ParseException e) {            e.printStackTrace();        }        return day + "天" + hour + "小时" + min + "分" + sec + "秒";    }}


0 0