Java SimpleDateFormat 错误处理:Cannot format given Object as a Date
在使用 Java SimpleDateFormat 时,有时会遇到 java.lang.IllegalArgumentException: Cannot format given Object as a Date 错误,这是因为 SimpleDateFormat 的 format 方法需要传入一个 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 类型。具体处理步骤如下:
-
确定
objs[10]的类型:- 如果
objs[10]本身是Date对象,可以直接将其传入format方法。 - 如果
objs[10]不是Date对象,则需要将其转换为Date类型。
- 如果
-
将
objs[10]转换为Date对象:- 可以使用
SimpleDateFormat的parse方法将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 异常的发生。
原文地址: https://www.cveoy.top/t/topic/pcOg 著作权归作者所有。请勿转载和采集!