在Java中将字符串转换为日期时的ClassCastException
我发现了错误 java.lang.ClassCastException:java.util.Date在Java中将字符串转换为日期时的ClassCastException,java,Java,我发现了错误 java.lang.ClassCastException:java.util.Date 在avb.Test.main(Test.java:38) 简化格式(“yyyy-MM-dd HH:MM:ss.SSS”) 从代码 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); String tmp = "2012-03-16 18:58:14.0"; Date MaxCmTimerUpdate = (Date)d
在avb.Test.main(Test.java:38)
简化格式(“yyyy-MM-dd HH:MM:ss.SSS”) 从代码
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String tmp = "2012-03-16 18:58:14.0";
Date MaxCmTimerUpdate = (Date)df.parse(tmp);
我做错了什么?如何修复它?我猜您已经导入了
java.sql.Date
(或其他Date
类型),而SimpleDateFormat
解析为java.util.Date
。你根本不需要演员
您将无法强制转换为不同的Date
类型-如果需要创建java.sql.Date
,则必须基于java.util.Date
创建一个新类型,例如
Date timerUpdate = new Date(df.parse(tmp).getTime());
您是否意外地导入了
java.sql.Date
而不是java.util.Date
?这是你需要演员的唯一原因
该死!又被乔恩·斯基特打败了!乔恩,谷歌付给你多少钱?;-) 这是否有效:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
String tmp = "2012-03-16 18:58:14.0";
java.util.Date maxCmTimerUpdate = df.parse(tmp);
如果是这样,那么其他两个答案是正确的。您确定您在
(Date)df.parse(tmp)
行中转换到java.util.Date吗?此外,DateFormat.parse(String)
已经返回java.util.Date,因此不需要强制转换。