1

我有移动类型对象的方法(此时类型对象是String类型),我想将它转换为类型 date 我应该怎么做。当我使用以下代码时出现错误:

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

代码:

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

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

7 回答 7

1

如何解析日期?

SimpleDateFormat parserSDF=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = parserSDF.parse(memberValue);
于 2013-03-20T06:50:41.167 回答
1

您不能简单地将 aString转换为 a Date。要从具有表示的Date对象String中获取,请使用SimpleDateFormatStringDate

例如:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //Change format according to your needs.
Date date = new Date();
try{
    date = sdf.parse((String)memberValue); //Update:- memberValue.toString() will also work.
}catch(ParseException pe){
    //Do something on Exception.
}
return new SwitchInputType<Date>(date);
于 2013-03-20T06:50:51.137 回答
1

如果它是一个字符串,则需要对其进行解析。尝试使用适当格式的 SimpleDateFormat。

于 2013-03-20T06:51:06.693 回答
1

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

于 2013-03-20T06:51:17.323 回答
1

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

于 2013-03-20T06:51:44.023 回答
1

您可以使用:

return new SwitchInputType<Date>(new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(memberValue));
于 2013-03-20T06:54:41.840 回答
1

像这样的东西应该工作:

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

final Date date;
try{ 
    date = parsedDate.parse(stringValue); 
} catch(Exception e) {
    // handle the exception.
}
于 2013-03-20T07:03:24.567 回答