zoukankan      html  css  js  c++  java
  • java工具类

    忽略两个对象之间变量名称大小写不同(这里的对象是由String转成String和LocalDateTime类型)

     public <T> T transferObjectIgnoreCase(Object obj, Class clz) {
            T result = null;
            try {
                if (obj != null && !obj.equals("")) {
                    result = (T) clz.newInstance();
                    //获取目标类的属性集合
                    Map<String, Field> destPropertyMap = new HashMap<>();
                    for (Field curField : clz.getDeclaredFields()) {
                        destPropertyMap.put(curField.getName().toLowerCase(), curField);
                    }
                    //拷贝属性
                    for (Field curField : obj.getClass().getDeclaredFields()) {
                        Field targetField = destPropertyMap.get(curField.getName().toLowerCase());
                        if (targetField != null) {
                            targetField.setAccessible(true);
                            curField.setAccessible(true);
                            if (targetField.getType() == String.class) {
                                targetField.set(result, curField.get(obj));
                            } else if (targetField.getType() == LocalDateTime.class) {
                                if(curField.get(obj)!=null){
                                    targetField.set(result, DateUtil.setValueForTime(curField.get(obj).toString()));
                                }
                            }
    
                        }
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    

    特殊的时间转化(字符串转LocalDateTime) 例如:String str = "5/2/2017 4:48:49 PM";

     /**
         * 修改时间类型
         *
         * @param time
         * @return
         */
        public static LocalDateTime setValueForTime(String time) {
            Date date = stringToDate(time);
            LocalDateTime localDateTime = LocalDateTimeUtils.parseDataToLocalDateTime(date);
            return localDateTime;
        }
    
    
        /**
         * 设置字符串转Date
         *
         * @param time
         * @return
         */
        public static Date stringToDate(String time) {
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss z");;
            time = time.trim();
            if ((time.indexOf("/") > -1) && (time.indexOf("AM") > -1) || (time.indexOf("PM") > -1)) {
                formatter = new SimpleDateFormat("MM/dd/yyyy KK:mm:ss a", Locale.ENGLISH);
            }
            ParsePosition pos = new ParsePosition(0);
            java.util.Date ctime = formatter.parse(time, pos);
            return ctime;
        }
    
  • 相关阅读:
    SQLServer多表联查,多表分页查询
    GOF23种设计模式概括
    常用的正则表达式
    面向对象七大原则
    Jquery简单学习
    MVC图片上传详解
    面向对象OOP概念描述
    C++ 基础命名空间 using namespace std;
    找不到WJSWDLL.dll
    AspectJ中的类型间声明(成员注入)
  • 原文地址:https://www.cnblogs.com/snail-gao/p/12757888.html
Copyright © 2011-2022 走看看