Android-DateUtil工具类

Posted 刘德利_Android

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android-DateUtil工具类相关的知识,希望对你有一定的参考价值。

时间相关工具类

public class DateUtil 

    private DateUtil()

    /**
     * 枚举日期格式
     */
    public enum DatePattern
        /**
         * 格式:"yyyy-MM-dd HH:mm:ss"
         */
        ALL_TIMEpublic String getValue()return "yyyy-MM-dd HH:mm:ss";,
        /**
         * 格式:"yyyy-MM"
         */
        ONLY_MONTHpublic String getValue()return "yyyy-MM";,
        /**
         * 格式:"yyyy-MM-dd"
         */
        ONLY_DAYpublic String getValue()return "yyyy-MM-dd";,
        /**
         * 格式:"yyyy-MM-dd HH"
         */
        ONLY_HOURpublic String getValue()return "yyyy-MM-dd HH";,
        /**
         * 格式:"yyyy-MM-dd HH:mm"
         */
        ONLY_MINUTEpublic String getValue()return "yyyy-MM-dd HH:mm";,
        /**
         * 格式:"MM-dd"
         */
        ONLY_MONTH_DAYpublic String getValue()return "MM-dd";,
        /**
         * 格式:"MM-dd HH:mm"
         */
        ONLY_MONTH_SECpublic String getValue()return "MM-dd HH:mm";,
        /**
         * 格式:"HH:mm:ss"
         */
        ONLY_TIMEpublic String getValue()return "HH:mm:ss";,
        /**
         * 格式:"HH:mm"
         */
        ONLY_HOUR_MINUTEpublic String getValue()return "HH:mm";;
        public abstract String getValue();
    

    /**
     * 获取当前时间
     * @return    返回当前时间,格式2017-05-04    10:54:21
     */
    public static String getNowDate(DatePattern pattern)
        String dateString = null;
        Calendar calendar = Calendar.getInstance();
        Date dateNow = calendar.getTime();
        SimpleDateFormat sdf = new SimpleDateFormat(pattern.getValue(),Locale.CHINA);
        dateString = sdf.format(dateNow);
        return dateString;
    

    /**
     * 将一个日期字符串转换成Data对象
     * @param dateString    日期字符串
     * @param pattern        转换格式
     * @return    返回转换后的日期对象
     */
    public static Date stringToDate(String dateString, DatePattern pattern)
        Date date = null;
        SimpleDateFormat sdf = new SimpleDateFormat(pattern.getValue(),Locale.CHINA);
        try 
            date = sdf.parse(dateString);
         catch (ParseException e) 
            e.printStackTrace();
        
        return date;
    

    /**
     * 将date转换成字符串
     * @param date    日期
     * @param pattern    日期的目标格式
     * @return
     */
    public static String dateToString(Date date, DatePattern pattern)
        String string = "";
        SimpleDateFormat sdf = new SimpleDateFormat(pattern.getValue(), Locale.CHINA);
        string = sdf.format(date);
        return string;
    

    /**
     * 获取指定日期周几
     * @param date    指定日期
     * @return
     * 返回值为: "周日", "周一", "周二", "周三", "周四", "周五", "周六"
     */
    public static String getWeekOfDate(Date date)
        String[] weekDays =  "周日", "周一", "周二", "周三", "周四", "周五", "周六" ;
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;
        if (week < 0)
            week = 0;
        return weekDays[week];
    

    /**
     * 获取指定日期对应周几的序列
     * @param date    指定日期
     * @return    周一:1    周二:2    周三:3    周四:4    周五:5    周六:6    周日:7
     */
    public static int getIndexWeekOfDate(Date date)
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int index = calendar.get(Calendar.DAY_OF_WEEK);
        if(index == 1)
            return 7;
        else
            return --index;
        
    

    /**
     * 返回当前月份
     * @return
     */
    public static int getNowMonth()
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.MONTH) + 1;
    

    /**
     * 获取当前月号
     * @return
     */
    public static int getNowDay()
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.DATE);
    

    /**
     * 获取当前年份
     * @return
     */
    public static int getNowYear()
        Calendar calendar = Calendar.getInstance();
        return calendar.get(Calendar.YEAR);
    

    /**
     * 获取本月份的天数
     * @return
     */
    public static int getNowDaysOfMonth()
        Calendar calendar = Calendar.getInstance();
        return daysOfMonth(calendar.get(Calendar.YEAR),calendar.get(Calendar.DATE) + 1);
    

    /**
     * 获取指定月份的天数
     * @param year    年份
     * @param month    月份
     * @return    对应天数
     */
    public static int daysOfMonth(int year,int month)
        switch(month)
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                return 31;
            case 4:
            case 6:
            case 9:
            case 11:
                return 30;
            case 2:
                if((year % 4 ==0 && year % 100 == 0) || year % 400 != 0)
                    return 29;
                else
                    return 28;
                
            default:
                return -1;
        
    

以上是关于Android-DateUtil工具类的主要内容,如果未能解决你的问题,请参考以下文章

Android-DateUtil工具类

2016第6周三

4.24—010—周三

八周三课 rsync通过服务同步,linux系统日志,screen工具

八周三次课(1月31日) 10.32/10.33 rsync通过服务同步 10.34 linux系统日志 10.35 screen工具

2017.11.29 周三 转载之李航博士的文章:大数据分析到底需要多少种工具?