-3

我花了很多时间将我的字符串转换为日期。我有字符串

Fri Jan 04 12:32:28 CST 2013 

格式。我的代码在下面

myDate=(Date) new SimpleDateFormat("EEE MMM dd kk:mm:ss zzz yyyy").parse(str);

请帮助我如何摆脱这种情况。此代码引发异常

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
4

3 回答 3

2

使用导入语句

import java.util.Date;

代替

import java.sql.Date;

是的...请不要忽略异常。此外,在使用自动导入时,请确保您需要什么类。在 Java API 中有许多类可能具有相似的名称。但重要的是完全限定的名称。

因此,请确保您在导入语句中具有正确的完全限定名称。

于 2013-08-31T18:13:01.637 回答
1

SimpleDateFormat#parse返回java.util.Date的不是java.sql.Date.
但是你已经导入java.sql.Date,意味着你正在尝试转换java.util.Datejava.sql.Date。所以你得到了ClassCastException
所以你的进口声明应该是(如@Rohit Jain评论)

     import java.util.date
于 2013-08-31T18:15:23.067 回答
0

我建议使用Joda-Time

import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

...

DateTimeFormatter dtf = DateTimeFormat.forPattern("put your format string here");
DateTime dateTime = dtf.parseDateTime(str);

对于格式字符串检查这个

于 2013-08-31T18:54:02.803 回答