当前位置: 首页 > article >正文

文件导入-使用java反射修改日期数据

文件导入时,时间类型通常不能直接导出,以下方法为批量处理类中日期类型转字符串类型。
Date/Datetime --> String(yyyy-mm-dd)

Field[] declaredFields = HrAviationstudentMonitorDTO.class.getDeclaredFields();
for (Field field : declaredFields) {
    try {
        field.setAccessible(true);
        // 如果类型是Date
        if ( field.getType().getName().equals("java.util.Date")) {
            String fieldName = field.getName();
        // createTime和modfiyTime不需要导出
            if ("createTime".equals(fieldName) || "modfiyTime".equals(fieldName)) continue;
            Method m = dto.getClass().getMethod(
                    "get" + getMethodName(fieldName));
            Date val = (Date) m.invoke(dto);
            if (val != null) {
                String val2 = DateUtil.format(val);
                Field field1 = HrAviationstudentMonitorExcel.class.getDeclaredField(fieldName);
                if (ObjectUtil.isNotEmpty(field1)) {
                    field1.setAccessible(true);
                    field1.set(excel, val2);
                }
            }
        }
    }catch (Exception e) {
        log.error("trainee:hrAviationstudentMonitor:export_____Exception:" + e.getMessage());
        e.printStackTrace();
    }
}
// 把一个字符串的第一个字母大写
private static String getMethodName(String fildeName) throws Exception{
    byte[] items = fildeName.getBytes();
    items[0] = (byte) ((char) items[0] - 'a' + 'A');
    return new String(items);
}
public static final String DATE_PATTERN = "yyyy-MM-dd";
/**
 * 日期格式化 日期格式为:yyyy-MM-dd
 *
 * @param date 日期
 * @return 返回yyyy-MM-dd格式日期
 */
public static String format(Date date) {
    return format(date, DATE_PATTERN);
}

/**
 * 日期格式化 日期格式为:yyyy-MM-dd
 *
 * @param date    日期
 * @param pattern 格式,如:DateUtils.DATE_TIME_PATTERN
 * @return 返回yyyy-MM-dd格式日期
 */
public static String format(Date date, String pattern) {
    if (date != null) {
        SimpleDateFormat df = new SimpleDateFormat(pattern);
        return df.format(date);
    }
    return null;
}


http://www.kler.cn/a/410909.html

相关文章:

  • 洛谷 B3635 硬币问题 C语言 记忆化搜索
  • Easyexcel(6-单元格合并)
  • Swift 实现链表重新排列:L0 → Ln → L1 → Ln-1
  • linux从0到1——shell编程9
  • postgresql按照年月日统计历史数据
  • Ruby 模块(Module)
  • 预告|ROS中超好用固定翼仿真开源平台即将上线!
  • CSS实现两组item中间边框不重复,且边框为渐变色
  • VXLAN详解
  • 【系统架构设计师】真题论文: 论软件架构建模技术与应用(包括解题思路和素材)
  • LLM | 论文精读 | CVPR | FairCLIP:追求视觉语言学习中的公平性
  • 初始ArkUI
  • lua除法bug
  • Ubuntu下手动设置Nvidia显卡风扇转速
  • shell与QQ邮箱的连接
  • etcd快速入门
  • 业务架构、数据架构、应用架构和技术架构
  • Ubuntu 关闭内核自动更新
  • 因泰立科技:激光技术融合,高速公路治超系统的创新实践
  • C++【日志模块中的writer类】前文中 循环队列用法
  • 2024算法基础公选课练习四(综合2)
  • Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
  • windows下安装wsl的ubuntu,同时配置深度学习环境
  • 小米note pro一代(leo)线刷、twrp、magisk、TODO: android源码编译
  • 解决单元测试时找不到类名
  • 梧桐数据库的高效索引技术研究及实现