欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Java时间工具类(把日期时间转换成xx秒前、xx分钟前、xx小时前...),工具类xx,import java.

来源: javaer 分享于  点击 11501 次 点评:279

Java时间工具类(把日期时间转换成xx秒前、xx分钟前、xx小时前...),工具类xx,import java.


import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class DateUtils {    private static final long ONE_MINUTE = 60;    private static final long ONE_HOUR = 3600;    private static final long ONE_DAY = 86400;    private static final long ONE_MONTH = 2592000;    private static final long ONE_YEAR = 31104000;    public static Calendar calendar = Calendar.getInstance();    /**     *      * @return yyyy-mm-dd     *  2012-12-25     */    public static String getDate() {        return getYear() + "-" + getMonth() + "-" + getDay();    }    /**     * @param format     * @return      * yyyy年MM月dd HH:mm      * MM-dd HH:mm 2012-12-25     *      */    public static String getDate(String format) {        SimpleDateFormat simple = new SimpleDateFormat(format);        return simple.format(calendar.getTime());    }    /**     *      * @return yyyy-MM-dd HH:mm      * 2012-12-29 23:47     */    public static String getDateAndMinute() {        SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm");        return simple.format(calendar.getTime());    }    /**     *      * @return     *  yyyy-MM-dd HH:mm:ss      *  2012-12-29 23:47:36     */    public static String getFullDate() {        SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        return simple.format(calendar.getTime());    }    /**     * 距离今天多久     * @param date     * @return      *      */    public static String fromToday(Date date) {        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        long time = date.getTime() / 1000;        long now = new Date().getTime() / 1000;        long ago = now - time;        if (ago <= ONE_HOUR)            return ago / ONE_MINUTE + "分钟前";        else if (ago <= ONE_DAY)            return ago / ONE_HOUR + "小时" + (ago % ONE_HOUR / ONE_MINUTE)                    + "分钟前";        else if (ago <= ONE_DAY * 2)            return "昨天" + calendar.get(Calendar.HOUR_OF_DAY) + "点"                    + calendar.get(Calendar.MINUTE) + "分";        else if (ago <= ONE_DAY * 3)            return "前天" + calendar.get(Calendar.HOUR_OF_DAY) + "点"                    + calendar.get(Calendar.MINUTE) + "分";        else if (ago <= ONE_MONTH) {            long day = ago / ONE_DAY;            return day + "天前" + calendar.get(Calendar.HOUR_OF_DAY) + "点"                    + calendar.get(Calendar.MINUTE) + "分";        } else if (ago <= ONE_YEAR) {            long month = ago / ONE_MONTH;            long day = ago % ONE_MONTH / ONE_DAY;            return month + "个月" + day + "天前"                    + calendar.get(Calendar.HOUR_OF_DAY) + "点"                    + calendar.get(Calendar.MINUTE) + "分";        } else {            long year = ago / ONE_YEAR;            int month = calendar.get(Calendar.MONTH) + 1;// JANUARY which is 0 so month+1            return year + "年前" + month + "月" + calendar.get(Calendar.DATE)                    + "日";        }    }    /**     * 距离截止日期还有多长时间     *      * @param date     * @return     */    public static String fromDeadline(Date date) {        long deadline = date.getTime() / 1000;        long now = (new Date().getTime()) / 1000;        long remain = deadline - now;        if (remain <= ONE_HOUR)            return "只剩下" + remain / ONE_MINUTE + "分钟";        else if (remain <= ONE_DAY)            return "只剩下" + remain / ONE_HOUR + "小时"                    + (remain % ONE_HOUR / ONE_MINUTE) + "分钟";        else {            long day = remain / ONE_DAY;            long hour = remain % ONE_DAY / ONE_HOUR;            long minute = remain % ONE_DAY % ONE_HOUR / ONE_MINUTE;            return "只剩下" + day + "天" + hour + "小时" + minute + "分钟";        }    }    /**     * 距离今天的绝对时间     *      * @param date     * @return     */    public static String toToday(Date date) {        long time = date.getTime() / 1000;        long now = (new Date().getTime()) / 1000;        long ago = now - time;        if (ago <= ONE_HOUR)            return ago / ONE_MINUTE + "分钟";        else if (ago <= ONE_DAY)            return ago / ONE_HOUR + "小时" + (ago % ONE_HOUR / ONE_MINUTE) + "分钟";        else if (ago <= ONE_DAY * 2)            return "昨天" + (ago - ONE_DAY) / ONE_HOUR + "点" + (ago - ONE_DAY)                    % ONE_HOUR / ONE_MINUTE + "分";        else if (ago <= ONE_DAY * 3) {            long hour = ago - ONE_DAY * 2;            return "前天" + hour / ONE_HOUR + "点" + hour % ONE_HOUR / ONE_MINUTE                    + "分";        } else if (ago <= ONE_MONTH) {            long day = ago / ONE_DAY;            long hour = ago % ONE_DAY / ONE_HOUR;            long minute = ago % ONE_DAY % ONE_HOUR / ONE_MINUTE;            return day + "天前" + hour + "点" + minute + "分";        } else if (ago <= ONE_YEAR) {            long month = ago / ONE_MONTH;            long day = ago % ONE_MONTH / ONE_DAY;            long hour = ago % ONE_MONTH % ONE_DAY / ONE_HOUR;            long minute = ago % ONE_MONTH % ONE_DAY % ONE_HOUR / ONE_MINUTE;            return month + "个月" + day + "天" + hour + "点" + minute + "分前";        } else {            long year = ago / ONE_YEAR;            long month = ago % ONE_YEAR / ONE_MONTH;            long day = ago % ONE_YEAR % ONE_MONTH / ONE_DAY;            return year + "年前" + month + "月" + day + "天";        }    }    public static String getYear() {        return calendar.get(Calendar.YEAR) + "";    }    public static String getMonth() {        int month = calendar.get(Calendar.MONTH) + 1;        return month + "";    }    public static String getDay() {        return calendar.get(Calendar.DATE) + "";    }    public static String get24Hour() {        return calendar.get(Calendar.HOUR_OF_DAY) + "";    }    public static String getMinute() {        return calendar.get(Calendar.MINUTE) + "";    }    public static String getSecond() {        return calendar.get(Calendar.SECOND) + "";    }    public static void main(String[] args) throws ParseException {        String deadline = "2012-12-30 12:45:59";        Date date = new Date();        SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        date = simple.parse(deadline);        System.out.println(DateUtils.fromDeadline(date));        String before = "2012-12-12 0:0:59";        date = simple.parse(before);        System.out.println(DateUtils.fromToday(date));        System.out.println(DateUtils.getFullDate());        System.out.println(DateUtils.getDate());    }}
相关栏目:

用户点评