Android常用工具类DateUtils(二)

来源:互联网 发布:淘宝买家怎么延长收货 编辑:程序博客网 时间:2024/05/22 14:37

在编写代码中,会经常用到时间Date这个类,小编整理了一些常用的时间工具类。供大家参考。

import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.TimeZone;/** * 日期工具类 */public class DateUtils {    /**     * 获取格林威治时间(1970年至今的秒数)     */    public static long getGMTime1() {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        sdf.setTimeZone(TimeZone.getTimeZone("Etc/Greenwich"));        String format = sdf.format(new Date());        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        Date gmDate = null;        try {            gmDate = sdf1.parse(format);        } catch (ParseException e) {            e.printStackTrace();        }        return gmDate.getTime() / 1000;    }    /**     * 获取格林威治时间 即1970年至今的秒数     */    public static long getGMTime2() {        int round = (int) (System.currentTimeMillis() / 1000);        return round;    }    /**     * 获取时间HH:mm:ss     *     * @return     */    public static String getCurrentTime() {        String time = null;        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String date = sdf.format(new Date());        //"\\s"以空格截断        String[] split = date.split("\\s");        if (split.length > 1) {            time = split[1];        }        return time;    }    /**     * 获取当前时间的年月日时分秒     * @return     */    public static String current() {        Calendar c = Calendar.getInstance();        int year = c.get(Calendar.YEAR);        int month = c.get(Calendar.MONTH) + 1;        int day = c.get(Calendar.DAY_OF_MONTH);        int hour = c.get(Calendar.HOUR_OF_DAY);        int minute = c.get(Calendar.MINUTE);        int second = c.get(Calendar.SECOND);        return year + "年" + month + "月" + day + "日" + hour + "时" + minute + "分" + second + "秒";    }    /**     * 得到昨天的日期     *     * @return     */    public static String getYesterdayDate() {        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.DATE, -1);        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        String yestoday = sdf.format(calendar.getTime());        return yestoday;    }    /**     * 得到今天的日期     *     * @return     */    public static String getTodayDate() {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        String date = sdf.format(new Date());        return date;    }    /**     * 得到明天的日期     *     * @return     */    public static String getTomorrowDate() {        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.DATE, 1);        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        String tomorrow = sdf.format(calendar.getTime());        return tomorrow;    }    /**     * 时间转化为时间格式     *     * @param timeStamp     * @return     */    public static String timeStampToStr(long timeStamp) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String date = sdf.format(timeStamp * 1000);        return date;    }    /**     * 时间转化为时间格式     *     * @param timeStamp     * @return     */    public static String timeStampToStr1(long timeStamp) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");        String date = sdf.format(timeStamp * 1000);        return date;    }    /**     * 时间转化为时间(几点)     *     * @param time     * @return     */    public static String timeStampToTime(long time) {        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");        String date = sdf.format(time * 1000);        return date;    }    /**     * 将日期格式转化为时间(秒数)     *     * @param time     * @return     */    public static long getStringToDate(String time) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");        Date date = new Date();        try {            date = sdf.parse(time);        } catch (ParseException e) {            e.printStackTrace();        }        return date.getTime() / 1000;    }    /**     * 将日期格式转化为时间(秒数)     *     * @param time     * @return     */    public static long getString2Date(String time) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        Date date = new Date();        try {            date = sdf.parse(time);        } catch (ParseException e) {            e.printStackTrace();        }        return date.getTime() / 1000;    }    /**     * 判断是否大于当前时间     *     * @param time     * @return     */    public static boolean judgeCurrTime(String time) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");        Date date = new Date();        try {            date = sdf.parse(time);            long t = date.getTime();            long round = System.currentTimeMillis();            if (t - round > 0) {                return true;            } else {                return false;            }        } catch (Exception e) {            e.printStackTrace();        }        return false;    }    /**     * 判断是否大于当前时间     *     * @param time     * @return     */    public static boolean judgeCurrTime(long time) {        long round = System.currentTimeMillis();        if (time - round > 0) {            return true;        } else {            return false;        }    }    /**     * 比较后面的时间是否大于前面的时间     *     * @param     * @return     */    public static boolean judgeTime2Time(String time1, String time2) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");        try {            //转化为时间            Date date1 = sdf.parse(time1);            Date date2 = sdf.parse(time2);            //获取秒数作比较            long l1 = date1.getTime() / 1000;            long l2 = date2.getTime() / 1000;            if (l2 - l1 > 0) {                return true;            } else {                return false;            }        } catch (ParseException e) {            e.printStackTrace();        }        return false;    }    /**     * 得到日期 yyyy-MM-dd     *     * @param time     * @return     */    public static String formatDate(long time) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        String date = sdf.format(time * 1000);        return date;    }    /**     * 得到时间 HH:mm:ss     *     * @param timeStamp     * @return     */    public static String getTime(long timeStamp) {        String time = null;        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        String date = sdf.format(timeStamp * 1000);        String[] split = date.split("\\s");        if (split.length > 1) {            time = split[1];        }        return time;    }    /**     * 将一个时间转换成提示性时间字符串,(多少分钟)     *     * @param timeStamp     * @return     */    public static String timeStampToFormat(long timeStamp) {        long curTime = System.currentTimeMillis() / (long) 1000;        long time = curTime - timeStamp;        return time / 60 + "";    }    /**     * 获得当前时间差     *     * @param timeStamp     * @return     */    public static int nowCurrentTime(long timeStamp) {        long curTime = System.currentTimeMillis() / (long) 1000;        long time = timeStamp - curTime;        return (int) time;    }    /**     * 获取当前的时 -->flag==true     * 获取当前的分 -->flag==false     *     * @return     */    public static String nowCurrentPoint(boolean flag) {        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");        String date = sdf.format(System.currentTimeMillis());        String[] split = date.split(":");        String hour = null;        String minute = null;        if (flag) {            if (split.length > 1) {                hour = split[0];                return hour;            }        } else {            if (split.length > 1) {                minute = split[1];                return minute;            }        }        return null;    }    /**     * 将标准时间格式HH:mm:ss化为当前的时间差值     *     * @param str     * @return     */    public static String StandardFormatStr(String str) {        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        try {            Date d = sdf.parse(str);            long timeStamp = d.getTime();            long curTime = System.currentTimeMillis() / (long) 1000;            long time = curTime - timeStamp / 1000;            return time / 60 + "";        } catch (ParseException e) {            e.printStackTrace();        }        return null;    }    /**     * 将一个时间转换成提示性时间字符串,如刚刚,1秒前     *     * @param timeStamp     * @return     */    public static String convertTimeToFormat(long timeStamp) {        long curTime = System.currentTimeMillis() / (long) 1000;        long time = curTime - timeStamp;        if (time < 60 && time >= 0) {            return "刚刚";        } else if (time >= 60 && time < 3600) {            return time / 60 + "分钟前";        } else if (time >= 3600 && time < 3600 * 24) {            return time / 3600 + "小时前";        } else if (time >= 3600 * 24 && time < 3600 * 24 * 30) {            return time / 3600 / 24 + "天前";        } else if (time >= 3600 * 24 * 30 && time < 3600 * 24 * 30 * 12) {            return time / 3600 / 24 / 30 + "个月前";        } else if (time >= 3600 * 24 * 30 * 12) {            return time / 3600 / 24 / 30 / 12 + "年前";        } else {            return "刚刚";        }    }    /**     * 日期变量转成对应的星期字符串     *     * @param date     * @return     */    public static final int WEEKDAYS = 7;    //星期字符数组    public static String[] WEEK = {"周日", "周一", "周二", "周三",            "周四", "周五", "周六"};    public static String DateToWeek(Date date) {        Calendar calendar = Calendar.getInstance();        calendar.setTime(date);        int dayIndex = calendar.get(Calendar.DAY_OF_WEEK);        if (dayIndex < 1 || dayIndex > WEEKDAYS) {            return null;        }        return WEEK[dayIndex - 1];    }}
0 0
原创粉丝点击