• DateUtil


    一、Date类,目前系统不推荐使用,还是有必要讲下,毕竟很多情况下,初学者可能接触的多就是Date 类了,所以很多人喜欢用。

    ①、使用new Date()代表当前系统时间

        Date date = new Date();

               System.out.println(date);

    使用Date类的默认构造方法创建出的对象就代表当前时间,由于Date类覆盖了toString方法,所以可以直接输出Date类型的对象。结果格式如下 : 

    Sun Jan 17 15:22:53 CST 2016

    ②、使用指定时间(年 - 1900, 月 -1 , 日)格式来创建时间对象

    Date date = new Date(2016 - 1900, 1-1, 17);

    System.out.println(date.toLocaleString()); // 2016-1-17 0:00:00

    注意 : 年份 要 - 1900 , 月份 要 - 1

    ③、使用指定毫秒来创建Date

    Date now = new Date();

    Date now2 = new Date(now.getTime());

    System.out.println(now2);// 2016-1-17 15:32:59

    二、Calendar类

    我们都知道, java Date类 有些方法是过时的,现在系统也推荐使用Calendar类进行时间和日期处理。Calendar 类的设计及其提供的功能远比Date强大。

    Calendar是抽象基类,它有很多子类,但它却对开发者而言是透明的。我们只需要简单调用Calendar.getInstance(),就可以返回当前系统

    时间对象,有了这个对象,就可以为所欲为了!

    ①、 Calendar类的常量

       Calendar.YEAR——年份

             Calendar.MONTH——月份

             Calendar.DATE——日期

             Calendar.DAY_OF_MONTH——日期,和上面的字段完全相同

             Calendar.HOUR——12小时制的小时数

             Calendar.HOUR_OF_DAY——24小时制的小时数

             Calendar.MINUTE——分钟

             Calendar.SECOND——秒

             Calendar.DAY_OF_WEEK——星期几

    ②、Calendar 构造函数

    protected Calendar() {

    },由于是protected函数,故无法直接通过new来创建对象,但Calendar提供了getInstance()来获取Calendar对象。

    ③、Calendar类的常用方法

     setTime(Date date) // 设置指定时间date的Calendar对象

     Date getTime() // 获取我们创建的Calendar对象对应的时间

     get(int field) // 获取指定field的值。field如①。

    二、自己总结的日期工具类

        
        // base 操作
        public static void base() {
            Calendar calendar = Calendar.getInstance();
            Date now = calendar.getTime();
            print(now);
            
            System.out.println(calendar.getActualMaximum(Calendar.MONTH)); // 11
            System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 当前月的最后一天 如 2016年1月, 则为31
            System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_WEEK)); // 7
            System.out.println(calendar.getActualMaximum(Calendar.HOUR_OF_DAY)); // 23
            System.out.println(calendar.getActualMaximum(Calendar.MINUTE)); // 59
            System.out.println(calendar.getActualMaximum(Calendar.SECOND)); // 59
            
            System.out.println(calendar.get(Calendar.DATE));
            System.out.println(calendar.get(Calendar.YEAR)); // 当前年份
            System.out.println(calendar.get(Calendar.MONTH) + 1); // 当前月份
            System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 当前时
            System.out.println(calendar.get(Calendar.MINUTE)); // 当前分
            System.out.println(calendar.get(Calendar.SECOND)); // // 当前秒
            
            System.out.println(calendar.getTimeInMillis()); // 毫秒
        }
    
        /**
         * 获取两个指定日期的间隔天数
         * @param start
         * @param end
         * @return
         */
        public static int getDaysBetween(Date start, Date end) {
            
            Calendar scalendar = Calendar.getInstance();
            scalendar.setTime(start);
            
            Calendar ecalendar = Calendar.getInstance();
            ecalendar.setTime(end);
            
            long between = ecalendar.getTimeInMillis() - scalendar.getTimeInMillis();
            
            return (int) (between / 60L / 60L / 24L / 1000L);
            
        }
    
        /**
         * start <= target <= end  : true 
         * @param target
         * @param start
         * @param end
         * @return
         */
        public static boolean isBetween(Date target, Date start, Date end) {
            
            long t = target.getTime();
            long s = start.getTime();
            long e = end.getTime();
            if(t >= s && t <= e) {
                return Boolean.TRUE;
            }
            return Boolean.FALSE;
        }
        
        /**
         * 获取当前月的第一天
         * @param date
         * @return
         */
        public static Date getFirstDateOnMonth(Date date) { 
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.set(Calendar.DAY_OF_MONTH, 1);
            return zerolizedTime(calendar.getTime());
        }
        
        /**
         * 获取当前月的最后一天
         * @param date
         * @return
         */
        public static Date getLastDateOnMonth(Date date) {
            
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(Calendar.MONTH, 1);
            calendar.set(Calendar.DAY_OF_MONTH, 0);
            return zerolizedTime(calendar.getTime());
    
        }
    
        /**
         * 获取下个月的第一天
         * @param date
         * @return
         */
        public static Date getFirstDateOnNextMonth(Date date) {
            
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(Calendar.MONTH, 1);
            return getFirstDateOnMonth(calendar.getTime());
        }
        
        /**
         * 获取下个月的最后一天
         * @param date
         * @return
         */
        public static Date getLastDateOnNextMonth(Date date) {
            
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(Calendar.MONTH, 1);
            return getLastDateOnMonth(calendar.getTime());
        }
        
        /**
         * 把日期后的时间归0 变成(yyyy-MM-dd 00:00:00:000)
         * @param Date
         * @return Date
         */
        public static Date zerolizedTime(Date date) {
            Calendar calendar = Calendar.getInstance();
    
            calendar.setTime(date);
            calendar.set(Calendar.HOUR_OF_DAY, 0);
            calendar.set(Calendar.MINUTE, 0);
            calendar.set(Calendar.SECOND, 0);
            calendar.set(Calendar.MILLISECOND, 0);
            return calendar.getTime();
        }
        
        /**
         * 在指定的date上 + days 天
         * @param date
         * @param days
         * @return
         */
        public static Date addDateDay(Date date, int days) {
            
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(Calendar.DAY_OF_YEAR, days);
            return calendar.getTime();
        }
        
        /**
         * 在指定的date上 + minutes 分
         * @param date
         * @param minutes
         * @return
         */
        public static Date addDateMinute(Date date, int minutes) {
            
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(Calendar.MINUTE, minutes);
            return calendar.getTime();
        }
        
        /**
         * 在指定的date上 + seconds 秒
         * @param date
         * @param seconds
         * @return
         */
        public static Date addDateSeconds(Date date, int seconds) {
            
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(Calendar.SECOND, seconds);
            return calendar.getTime();
        }
        
        // date 转 string
        public static String format2yyyyMMdd(Date date) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            return sdf.format(date);
        }
        
        public static String format2yyyyMMddHHmmss(Date date) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            return sdf.format(date);
        }
        
        public static String format2yyyyMMddHH(Date date) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
            return sdf.format(date);
        }
        
        public static String format2yyyyMMddHHmm(Date date) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:00");
            return sdf.format(date);
        }
        
        // string 转 date
        public static Date parseDate2yyyyMMdd(String date) throws ParseException {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Date parseDate = sdf.parse(date);
            return parseDate;
        }
        
        public static Date parseDate2yyyyMMddHHmmss(String date) throws ParseException {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date parseDate = sdf.parse(date);
            return parseDate;
        }
        
        @SuppressWarnings("deprecation")
        public static void print(Date date) {
            
            System.out.println(date.toLocaleString());
        }
        
        public static void print(String  date) {
            
            System.out.println(date);
        }
     
     
  • 相关阅读:
    消除QQ表情小游戏
    图片排序
    自定义字体
    随机图片滚动
    生成500个0-1000的随机数&&数组查找—小练习
    文字搬运
    查找 替换
    BeginInvoke和EndInvoke方法
    MVC HtmlHelper用法大全
    30分钟LINQ教程 【转载】
  • 原文地址:https://www.cnblogs.com/chenmo-xpw/p/5137300.html
Copyright © 2020-2023  润新知