将字符串转换为Date错误,返回类型为-ClassCastException

时间:2013-03-20 06:48:39

标签: java casting type-conversion

我有移动类型对象的方法(在这个时候类型对象是类型字符串) 我想把它转换为输入日期我应该怎么做。 当我使用以下代码时出现错误:

java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date

代码:

} else if (typeName.equals("Date")) {

    return new SwitchInputType<Date>((Date) memberValue);

7 个答案:

答案 0 :(得分:1)

How to parse a date?

SimpleDateFormat parserSDF=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = parserSDF.parse(memberValue);

答案 1 :(得分:1)

您不能简单地将String投射到Date。要从Date代表String的{​​{1}}对象中获取String,请使用SimpleDateFormat

<强> E.g:

Date

答案 2 :(得分:1)

如果是字符串,则需要解析它。尝试使用具有适当格式的SimpleDateFormat。

答案 3 :(得分:1)

尝试创建像此Date date = new Date(long)这样的新日期对象,或者如果使用Date类创建此字符串,请使用其静态方法Date.valueOf(String s)

答案 4 :(得分:1)

在分配给Date之前,您应该首先将字符串转换为日期对象。使用SimpleDateFormat.parse()方法将字符串解析为Date对象。

答案 5 :(得分:1)

您可以使用:

return new SwitchInputType<Date>(new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(memberValue));

答案 6 :(得分:1)

这样的事情应该有效:

final SimpleDateFormat parsedDate = new SimpleDateFormat("yyyy-MM-dd");

final Date date;
try{ 
    date = parsedDate.parse(stringValue); 
} catch(Exception e) {
    // handle the exception.
}