java.lang.IllegalArgumentException: Cannot format given Object as a Date
在进行日期转换的时候遇到了这个问题, 非常的恼火
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//设置用户名并进行时间转换
for (int i = 0; i < purchasedFundsList.size() ; i++) {
purchasedFundsList.get(i).setUserName(userName);
purchasedFundsList.get(i).setCreateTime(sdf.format(purchasedFundsList.get(i).getCreateTime()));
}
查看API发现了问题, format(Date date) 这个方法的参数只能是Date类型的, 而我传递的是String类型, 所以方法的参数类型错误!
当通过一个小小的工具转换之后, 问题解决!
sdf.format(TimeUtil.StringToDate(purchasedFundsList.get(i).getCreateTime()));
小工具: TimeUtil.java
/**
* 将字符串时间格式转换成Date时间格式,参数String类型
* 比如字符串时间:"2017-12-15 21:49:03"
* 转换后的date时间:Fri Dec 15 21:49:03 CST 2017
* @param datetime 类型为String
* @return
*/
public static Date StringToDate(String datetime){
SimpleDateFormat sdFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
try {
date = sdFormat.parse(datetime);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return date;
}
问题解决!
参考资料: https://blog.csdn.net/alan_liuyue/article/details/78979737