2013-08-31 55 views
-3

我花了很多时间来我的字符串转换为日期。我有字符串的Java:字符串到日期

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 
+5

摆脱什么?你有什么异常吗?意外的输出? –

+0

此代码抛出异常 –

+5

检查import语句。它应导入'java.util.Date',而不是'java.sql.Date'。 –

回答

2

使用import语句

import java.util.Date; 

代替

import java.sql.Date; 

是的......请不要忽略例外。而且,在使用自动导入时,确保你需要什么类。在Java API中有许多可能具有相似名称的类。但重要的是完全合格的名称。

因此,请确保您在import语句有正确的完全合格的名称。

1

SimpleDateFormat#parse返回java.util.Date不是java.sql.Date
但是您已经输入java.sql.Date,表示您正在尝试将java.util.Date转换为java.sql.Date。因此您得到ClassCastException
所以,你的进口statment应(如@Rohit耆那教评论)

 import java.util.date 
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); 

对于格式字符串检查this