为返回类型抛出字符串日期错误-ClassCastException
我有方法,我移动类型对象(在这段时间类型对象是类型字符串) 我想投它来输入日期我该怎么做。 当我使用下面的代码我收到错误:为返回类型抛出字符串日期错误-ClassCastException
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date
代码:
} else if (typeName.equals("Date")) {
return new SwitchInputType<Date>((Date) memberValue);
像这样的东西应该工作:
final SimpleDateFormat parsedDate = new SimpleDateFormat("yyyy-MM-dd");
final Date date;
try{
date = parsedDate.parse(stringValue);
} catch(Exception e) {
// handle the exception.
}
SimpleDateFormat parserSDF=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = parserSDF.parse(memberValue);
你不能简单地投下String
到Date
。要从String
对象获得Date
,该对象的String
表示形式为Date
,请使用SimpleDateFormat。
E.g:
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);
我曾试过你的代码,但即时通讯在解析错误:date = sdf.parse(memberValue);错误是:DateFormat类型中的方法parse(String)不适用于参数(Object),任何想法? – 2013-03-20 06:59:01
这意味着memberValue的类型为“Object”而不是“String”,因此您需要将您的'memberValue'强制转换为'String'。但在此之前,你可以告诉'memberValue'中存在什么值? – SudoRahul 2013-03-20 07:00:47
是的我写的成员值是对象,现在它作为字符串represted值2012-12-03 – 2013-03-20 07:04:35
如果它是一个字符串,你需要分析它。尝试使用适当格式的SimpleDateFormat。
尝试创建像这样的新日期对象Date date = new Date(long)
或者如果您使用Date类创建此字符串,请使用其静态方法Date.valueOf(String s)
。
在分配给日期之前,您应该先将字符串转换为日期对象。使用SimpleDateFormat.parse()方法将字符串解析为Date对象。
您可以使用:
return new SwitchInputType<Date>(new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH).parse(memberValue));
我用你的代码和即时通讯得到这个错误:他的方法解析(字符串)类型DateFormat不适用于参数(对象),任何想法? – 2013-03-20 07:00:10
然后menmberValue不是一个String类对象。你能验证吗? – 2013-03-20 07:03:36
我已经试过你的代码,并收到此错误:在类型日期格式的方法解析(字符串)不适用(Object) – 2013-03-20 07:01:45
Date date = parserSDF.parse((String)memberValue); – user1121883 2013-03-20 07:02:29