Date工具类

import android.util.Log;

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


public class DateHelper {
    public static Date getNowDate() {
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String dateString = formatter.format(currentTime);
        Date currentTime_2 = null;
        try {
            currentTime_2 = formatter.parse(dateString);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return currentTime_2;
    }

    public Date getFirstDayOfMonth(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.DAY_OF_MONTH, 1);
        Date first = dateTodateNoHour(cal.getTime());
        System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(first));
        return first;
    }

    public Date getLastDayOfMonth(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.DAY_OF_MONTH, 1);
        cal.roll(Calendar.DAY_OF_MONTH, -1);
        Date last = dateTodateNoHour(cal.getTime());
        System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(last));
        return last;
    }

    /**
     * 将长时间格式字符串转换为时间 yyyy-MM-dd HH:mm:ss
     */
    public String getStringDate(Long date) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = formatter.format(date);
        return dateString;
    }

    public String getDate(Date date) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = formatter.format(date);
        return dateString;
    }

    public String getLastDayNumOfMonth(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.DAY_OF_MONTH, 1);
        cal.roll(Calendar.DAY_OF_MONTH, -1);
        Date last = dateTodateNoHour(cal.getTime());
        String dayNum = new SimpleDateFormat("dd").format(last);
        System.out.println("dayNum" + dayNum);
        return dayNum;
    }

    public String getDayNumOfMonth(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        Date last = dateTodateNoHour(cal.getTime());
        String dayNum = new SimpleDateFormat("dd").format(last);
        System.out.println("dayNum" + dayNum);
        return dayNum;
    }

    public String getCurrentYearNum(Date date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.set(Calendar.DAY_OF_MONTH, 1);
        Date last = dateTodateNoHour(cal.getTime());
        String dayNum = new SimpleDateFormat("yyyy").format(last);
        System.out.println("dayNum" + dayNum);
        return dayNum;
    }

    public Date stringToDate(String str) {
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        Date date = null;
        try {
            date = format.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

    public Date stringToDateNoHour(String str) {
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try {
            date = format.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

    public Date stringToDateNoMonth(String str) {
        DateFormat format = new SimpleDateFormat("yyyy");
        Date date = null;
        try {
            date = format.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

    public String dateToStringNoHour(Date date) {
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String str = null;
        try {
            str = format.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }

    public String dateToStringNoMonth(Date date) {
        DateFormat format = new SimpleDateFormat("yyyy");
        String str = null;
        try {
            str = format.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }

    public int dateToInt_dd(Date date) {
        int date_dd = 0;
        DateFormat format = new SimpleDateFormat("dd");
        String str = null;
        try {
            str = format.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (str != null) {
            date_dd = Integer.valueOf(str);
        }
        return date_dd;
    }

    public Date dateTodate_dd(Date date) {
        if (date == null) {
            return null;
        }
        DateFormat format = new SimpleDateFormat("dd");
        Date dateNoHour = null;
        try {
            dateNoHour = format.parse(format.format(date));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return dateNoHour;
    }

    public Date dateTodateNoHour(Date date) {
        if (date == null) {
            return null;
        }
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date dateNoHour = null;
        try {
            dateNoHour = format.parse(format.format(date));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return dateNoHour;
    }


    public String dateToStringDate(Date date) {
        DateFormat format = new SimpleDateFormat("yyyyMMdd");
        String str = null;
        try {
            str = format.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }

    public String dateToString(Date date) {
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        String str = null;
        try {
            str = format.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }
    public String dateToString2(Date date) {
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String str = null;
        try {
            str = format.format(date);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }
    public long getHours(String statTime, String endTime) {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        long diff = 0;
        long hours = 0;
        try {
            Date d1 = df.parse(endTime);
            Date d2 = df.parse(statTime);
            diff = d1.getTime() - d2.getTime();
            long days = diff / (1000 * 60 * 60 * 24);
            hours = (diff - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
            if (days > 0) {
                hours = (diff - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60) + (days * 24);
            }
            Log.d("fangshu", diff + "+++diff==" + days + "++hours+" + hours);
        } catch (Exception e) {
            Log.d("fangshu", e.getMessage());
        }
        return hours;
    }

    /**
     * function:不是绝对值,根据两个日期自动转化为xx秒
     * parameters:
     * creator:XiongXiaolu
     * time:2016/6/2 9:57
     */
    public long getIntervalSeconds(Date date1, Date date2) {
        long seconds = 0;
        if (date1 != null && date2 != null) {
            seconds = (int) ((date1.getTime() - date2.getTime()) / 1000);
        }
        return seconds;
    }

    /**
     * function:取绝对值,根据两个日期自动转化为xx秒,xx分钟,xx小时,xx天
     * parameters:
     * creator:XiongXiaolu
     * time:2016/6/2 9:57
     */
    public String getIntervalTime(Date date1, Date date2) {
        long time = 0;
        String strUnit = "秒";
        if (date1 != null && date2 != null) {
            long seconds = Math.abs(getIntervalSeconds(date1, date2));
            if (seconds > 60 * 60 * 24 * 365) {
                time = (int) (seconds / (60 * 60 * 24 * 365));
                strUnit = "年";
            } else {
                if (seconds > 60 * 60 * 24) {
                    time = (int) (seconds / (60 * 60 * 24));
                    strUnit = "天";
                } else {
                    time = 1;
                    strUnit = "天";
                }
            }

        }
        return time + strUnit;
    }

    public String getIntervalTime2(Date date1, Date date2) {
        long time = 0;
        String strUnit = "秒";
        if (date1 != null && date2 != null) {
            long seconds = Math.abs(getIntervalSeconds(date1, date2));
            if (seconds > 60 * 60 * 24 * 365) {
                time = (int) (seconds / (60 * 60 * 24 * 365));
                strUnit = "年";
            } else {
                if (seconds > 60 * 60 * 24) {
                    time = (int) (seconds / (60 * 60 * 24));
                    strUnit = "天";
                } else {
                    if (seconds > 60 * 60) {
                        time = (int) (seconds / (60 * 60));
                        strUnit = "小时";
                    } else {
                        if (seconds > 60) {
                            time = (int) (seconds / (60));
                            strUnit = "分钟";
                        } else {
                            time = (int) (seconds);
                            strUnit = "秒";
                        }
                    }
                }
            }

        }
        return time + strUnit;
    }

    public int getAge(Date dateOfBirth) {
        int age = 0;
        Calendar born = Calendar.getInstance();
        Calendar now = Calendar.getInstance();
        if (dateOfBirth != null) {
            now.setTime(new Date());
            born.setTime(dateOfBirth);
            age = now.get(Calendar.YEAR) - born.get(Calendar.YEAR);

        }
        return age;
    }

    /**
     * 获取前n天日期、后n天日期
     *
     * @param distanceDay 前几天 如获取前7天日期则传-7即可;如果后7天则传7
     * @return
     */
    public static String getOldDate(int distanceDay) {
        SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
        Date beginDate = new Date();
        Calendar date = Calendar.getInstance();
        date.setTime(beginDate);
        date.set(Calendar.DATE, date.get(Calendar.DATE) + distanceDay);
        Date endDate = null;
        try {
            endDate = dft.parse(dft.format(date.getTime()));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return dft.format(endDate);
    }

猜你喜欢

转载自blog.csdn.net/zjf_0812/article/details/78053511