• jdk1.8新日期时间类(DateTime、LocalDateTime)demo代码


           //获取当前时间
            LocalDateTime d0 = LocalDateTime.now();
            System.out.println(DataConvertUtil.localDateTimeToStr(d0, "yyyy-MM-dd HH:mm:ss"));
    
            //输入年月日时分秒实例化新的时间对象
            LocalDateTime d1 = LocalDateTime.of(2017, 5, 15, 20, 32, 12);
            System.out.println(DataConvertUtil.localDateTimeToStr(d1, "yyyy-MM-dd HH:mm:ss"));
    
            //对一个时间对象加5分钟(同理也可加/减,年/月/日/时/分/秒),加是plus,减是minus
            LocalDateTime d2 = d1.plusMinutes(5);
            System.out.println(DataConvertUtil.localDateTimeToStr(d2, "yyyy-MM-dd HH:mm:ss"));
    
            //对一个时间对象单独设置年月日时分秒
            //把小时设为5点
            LocalDateTime d21 = d2.withHour(5);
            //把小时设为5点,0分,0秒
            d21 = d2.withHour(6).withMinute(0).withSecond(0);
            System.out.println(DataConvertUtil.localDateTimeToStr(d21, "yyyy-MM-dd HH:mm:ss"));
    
            //获取日(同理也可获取年月日时分秒)
            int day = d2.getDayOfMonth();
            System.out.println(day);
    
            //判断两个时间的先后,可以用isAfter或isBefore,如下例就是判断d2是否晚于d1
            boolean b1 = d2.isAfter(d1);
            System.out.println(b1);
    
            //两个时间相减,获取时间差(例子为d2-d1,并获取时间差(单位:分钟))
            //类似Duration的还有Period,Period专用于计算年月日
            Duration duration = Duration.between(d1, d2);
            long m1 = duration.toMinutes();
            System.out.println(m1);
    
            //Date和LocalDateTime互转
            Date dx1 = DataConvertUtil.localDateTimeToDate(d1);
            LocalDateTime d3 = DataConvertUtil.dateToLocalDateTime(dx1);
            System.out.println(DataConvertUtil.localDateTimeToStr(d3, "yyyy-MM-dd HH:mm:ss"));
    
            //Date和LocalDate互转
            LocalDate d31 = LocalDate.now();
            dx1 = DataConvertUtil.localDateToDate(d31);
            d31 = DataConvertUtil.dateToLocalDate(dx1);
    
            //LocalDateTime按指定格式输出string
            //还有可指定输出格式版本localDateTimeToStr(LocalDateTime value, String format)
            String s1 = DataConvertUtil.localDateTimeToStr(d1, "yyyy-MM-dd HH:mm:ss");
            System.out.println("s1=" + s1);
    
            //string按指定格式转为LocalDateTime
            //还有可指定格式版本strToLocalDateTime(String value, String format)
            LocalDateTime d4 = DataConvertUtil.strToLocalDateTime(s1, "yyyy-MM-dd HH:mm:ss");
            System.out.println(DataConvertUtil.localDateTimeToStr(d4, "yyyy-MM-dd HH:mm:ss"));
            //注意!!!!!
            //由于LocalDateTime类型的限制,字符串转LocalDateTime时字符串值必须完整包含年月日时分秒,而实际情况经常会只有年月日
            //对于这种情况,可以用下例的DataConvertUtil.strToLocalDate转为LocalDate类型,然后再把LocalDate转为LocalDateTime
            String s2 = DataConvertUtil.localDateTimeToStr(d1, "yyyy-MM-dd");
            //字符串转LocalDate
            LocalDate d5 = DataConvertUtil.strToLocalDate(s2, "yyyy-MM-dd");
            System.out.println(DataConvertUtil.localDateToStr(d5));
            //LocalDate转LocalDateTime
            LocalDateTime d6 = LocalDateTime.of(d5, LocalTime.of(0, 0));
            System.out.println(DataConvertUtil.localDateTimeToStr(d6, "yyyy-MM-dd HH:mm:ss"));
    
    //以下补充DataConvertUtil类的相关函数
        /**
         * LocalDateTime转Date
         *
         * @param localDateTime
         * @return
         */
        public static Date localDateTimeToDate(LocalDateTime localDateTime) {
            if (localDateTime == null) return null;
    
            return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
        }
    
        /**
         * Date转LocalDateTime
         *
         * @param date
         * @return
         */
        public static LocalDateTime dateToLocalDateTime(Date date) {
            if (date == null) return null;
    
            return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
        }
    
        /**
         * LocalDate转Date
         *
         * @param localDate
         * @return
         */
        public static Date localDateToDate(LocalDate localDate) {
            if (localDate == null) return null;
    
            return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
        }
    
        /**
         * Date转LocalDate
         *
         * @param date
         * @return
         */
        public static LocalDate dateToLocalDate(Date date) {
            if (date == null) return null;
    
            return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        }
    
        /**
         * 日期时间(LocalDateTime)按默认格式转字符串
         *
         * @param value
         * @return
         */
        public static String localDateTimeToStr(LocalDateTime value) {
            return localDateTimeToStr(value, "yyyy-MM-dd");
        }
    
        /**
         * 日期时间(LocalDateTime)按指定格式转字符串
         *
         * @param value
         * @param format
         * @return
         */
        public static String localDateTimeToStr(LocalDateTime value, String format) {
            String dateString;
            if (value == null) {
                dateString = "";
            } else {
                DateTimeFormatter formatDate = DateTimeFormatter.ofPattern(format);
                dateString = value.format(formatDate);
            }
    
            return dateString;
        }
    
        /**
         * 字符串按默认格式转日期时间(LocalDateTime)
         *
         * @param value
         * @return
         */
        public static LocalDateTime strToLocalDateTime(String value) {
            return strToLocalDateTime(value, "yyyy-MM-dd HH:mm:ss");
        }
    
        /**
         * 字符串按指定格式转日期时间(LocalDateTime)
         *
         * @param value
         * @param format
         * @return
         */
        public static LocalDateTime strToLocalDateTime(String value, String format) {
            if (value != null && value.trim().length() > 0) {
                DateTimeFormatter formatDate = DateTimeFormatter.ofPattern(format);
    
                try {
                    return LocalDateTime.parse(value, formatDate);
                } catch (Exception e) {
                    return null;
                }
            }
    
            return null;
        }

    转载于:https://www.cnblogs.com/cannel/p/11074411.html

  • 相关阅读:
    jQuery1.11源码分析(6)-----jQuery结构总揽
    保存知乎收藏夹功能的NodeJS版本
    浏览器兼容性小整理和一些js小问题(后面会继续更新)
    jQuery1.11源码分析(5)-----Sizzle编译和过滤阶段[原创]
    jQuery1.11源码分析(4)-----Sizzle工厂函数[原创]
    【原创】Redux 卍解
    【原创】移动端高清、多屏适配方案
    【原创】ui.router源码解析
    【原创】ReFlux细说
    【原创】express3.4.8源码解析之中间件
  • 原文地址:https://www.cnblogs.com/twodog/p/12134802.html
Copyright © 2020-2023  润新知