zoukankan      html  css  js  c++  java
  • Android-DateTimeAndroidUtil-工具类

    DateTimeAndroidUtil-工具类 是关于时间日前相关的公用方法;

     

    package liudeli.mynetwork01.utils;
    
    import android.util.Log;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Locale;
    import java.util.TimeZone;
    
    /**
     * @Author Liudeli
     * @Describe:时间相关工具类
     */
    public class DateTimeAndroidUtil {
    
        private DateTimeAndroidUtil(){}
    
        /**
         * 枚举日期格式
         */
        public enum DatePattern{
            /**
             * 格式:"yyyy-MM-dd HH:mm:ss"
             */
            ALL_TIME{public String getValue(){return "yyyy-MM-dd HH:mm:ss";}},
            /**
             * 格式:"yyyy-MM"
             */
            ONLY_MONTH{public String getValue(){return "yyyy-MM";}},
            /**
             * 格式:"yyyy-MM-dd"
             */
            ONLY_DAY{public String getValue(){return "yyyy-MM-dd";}},
            /**
             * 格式:"yyyy-MM-dd HH"
             */
            ONLY_HOUR{public String getValue(){return "yyyy-MM-dd HH";}},
            /**
             * 格式:"yyyy-MM-dd HH:mm"
             */
            ONLY_MINUTE{public String getValue(){return "yyyy-MM-dd HH:mm";}},
            /**
             * 格式:"MM-dd"
             */
            ONLY_MONTH_DAY{public String getValue(){return "MM-dd";}},
            /**
             * 格式:"MM-dd HH:mm"
             */
            ONLY_MONTH_SEC{public String getValue(){return "MM-dd HH:mm";}},
            /**
             * 格式:"HH:mm:ss"
             */
            ONLY_TIME{public String getValue(){return "HH:mm:ss";}},
            /**
             * 格式:"HH:mm"
             */
            ONLY_HOUR_MINUTE{public 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;
            }
        }
    
        /**
         * 获取当前时间
         * @return
         */
        public static String getNowTime(){
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = new Date(System.currentTimeMillis());
            return simpleDateFormat.format(date);
        }
    
        /**
         * 获取当前时间
         * @return
         */
        public static String getThisTiem() {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");// HH:mm:ss
            // 获取当前时间
            Date date = new Date(System.currentTimeMillis());
            return simpleDateFormat.format(date);
        }
    
        /**
         * 获取时间戳
         *
         * @return 获取时间戳
         */
        public static String getTimeString() {
            SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            Calendar calendar = Calendar.getInstance();
            return df.format(calendar.getTime());
        }
    
        /**
         * 获取时间戳
         *
         * @return 获取时间戳
         */
        public static String getTimeString2() {
            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Calendar calendar = Calendar.getInstance();
            return df.format(calendar.getTime());
        }
    
        /**
         * 时间转换为时间戳
         * @param time:需要转换的时间
         * @return
         */
        public static String dateToStamp(String time)  {
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = null;
            try {
                date = simpleDateFormat.parse(time);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            long ts = date.getTime();
            return String.valueOf(ts);
        }
    
        /**
         * 时间戳转换为字符串
         * @param time:时间戳
         * @return
         */
        public static String times(String time) {
            SimpleDateFormat sdr = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分");
            @SuppressWarnings("unused")
            long lcc = Long.valueOf(time);
            int i = Integer.parseInt(time);
            String times = sdr.format(new Date(i * 1000L));
            return times;
    
        }
        /**
         *获取距现在某一小时的时刻
         * @param hour hour=-1为上一个小时,hour=1为下一个小时
         * @return
         */
        public static String getLongTime(int hour){
            Calendar c = Calendar.getInstance(); // 当时的日期和时间
            int h; // 需要更改的小时
            h = c.get(Calendar.HOUR_OF_DAY) - hour;
            c.set(Calendar.HOUR_OF_DAY, h);
            SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            Log.v("time",df.format(c.getTime()));
            return df.format(c.getTime());
        }
        /**
         * 比较时间大小
         * @param str1:要比较的时间
         * @param str2:要比较的时间
         * @return
         */
        public static boolean isDateOneBigger(String str1, String str2) {
            boolean isBigger = false;
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
            Date dt1 = null;
            Date dt2 = null;
            try {
                dt1 = sdf.parse(str1);
                dt2 = sdf.parse(str2);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            if (dt1.getTime() > dt2.getTime()) {
                isBigger = true;
            } else if (dt1.getTime() < dt2.getTime()) {
                isBigger = false;
            }
            return isBigger;
        }
    
        /**
         * 当地时间 ---> UTC时间
         * @return
         */
        public static String Local2UTC(){
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            sdf.setTimeZone(TimeZone.getTimeZone("gmt"));
            String gmtTime = sdf.format(new Date());
            return gmtTime;
        }
    
        /**
         * UTC时间 ---> 当地时间
         * @param utcTime   UTC时间
         * @return
         */
        public static String utc2Local(String utcTime) {
            SimpleDateFormat utcFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//UTC时间格式
            utcFormater.setTimeZone(TimeZone.getTimeZone("UTC"));
            Date gpsUTCDate = null;
            try {
                gpsUTCDate = utcFormater.parse(utcTime);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            SimpleDateFormat localFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//当地时间格式
            localFormater.setTimeZone(TimeZone.getDefault());
            String localTime = localFormater.format(gpsUTCDate.getTime());
            return localTime;
        }
    }
  • 相关阅读:
    java实现从实体到SQL语句的转换
    Mybatis Plus 入坑(含最新3.X配置)
    Spring cloud config client获取不到配置中心的配置
    Spring Cloud Config-Client 无法获取 Config-Server 在 github 上的配置文件的属性值,竟然是因为
    QMessageBox 的四种用法
    龙芯派二代发布,简化国产软硬件开发难度
    解析Qt元对象系统(五) Q_INVOKABLE与invokeMethod(automatic connection从Qt4.8开始的解释已经与之前不同,发送对象驻足于哪一个线程并不重要,起到决定作用的是接收者对象所驻足的线程以及发射信号(该信号与接受者连接)的线程是不是在同一个线程)good
    解析Qt元对象系统(四) 属性系统(确实比较方便)
    HTML如何让IMG自动适应DIV容器大小
    布隆过滤---判断一个元素在亿级数据中是否存在
  • 原文地址:https://www.cnblogs.com/android-deli/p/10170099.html
Copyright © 2011-2022 走看看