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

posted @ 2019-07-01 15:59  何茫然zju  阅读(26539)  评论(0编辑  收藏  举报