在使用 Java SimpleDateFormat 时,有时会遇到 java.lang.IllegalArgumentException: Cannot format given Object as a Date 错误,这是因为 SimpleDateFormatformat 方法需要传入一个 Date 类型的对象,而传入的对象类型并非 Date

以下代码片段展示了常见的错误场景:

SimpleDateFormat sf = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss');
it.setTime(objs[10] != null ? sf.format(objs[10]) : '');

为了解决这个问题,需要确保 objs[10] 是一个合法的 Date 对象,或者能够转换为 Date 类型。具体处理步骤如下:

  1. 确定 objs[10] 的类型:

    • 如果 objs[10] 本身是 Date 对象,可以直接将其传入 format 方法。
    • 如果 objs[10] 不是 Date 对象,则需要将其转换为 Date 类型。
  2. objs[10] 转换为 Date 对象:

    • 可以使用 SimpleDateFormatparse 方法将 objs[10] 的值解析为 Date 对象。

下面是一个示例代码,展示了如何处理该错误:

SimpleDateFormat sf = new SimpleDateFormat('yyyy-MM-dd HH:mm:ss');
Date date;
if (objs[10] instanceof Date) {
  date = (Date) objs[10];
} else if (objs[10] != null) {
  try {
    date = sf.parse(objs[10].toString());
  } catch (ParseException e) {
    // 处理解析错误的情况
    e.printStackTrace();
  }
} else {
  date = null;
}

String formattedDate = date != null ? sf.format(date) : '';
it.setTime(formattedDate);

通过以上步骤,可以确保将合法的 Date 对象传入 format 方法中,避免 IllegalArgumentException 异常的发生。

Java SimpleDateFormat 错误处理:Cannot format given Object as a Date

原文地址: https://www.cveoy.top/t/topic/pcOg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录