错误将字符串转换为日期:ClassCastException

Lad*_*ssa 2 java android date classcastexception

我正在尝试将字符串转换为日期:

Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
Date dataEvento = null;

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
dataEvento = (Date)dateFormat.parse("28/08/2010"); //the app crash here
Run Code Online (Sandbox Code Playgroud)

logcat的:

03-06 10:06:19.867: E/AndroidRuntime(426): FATAL EXCEPTION: main 
03-06 10:06:19.867: E/AndroidRuntime(426): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ladessa.jccb/com.ladessa.jccb.MainActivity}: java.lang.ClassCastException: java.util.Date 
03-06 10:06:19.867: E/AndroidRuntime(426):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at android.os.Looper.loop(Looper.java:123) 03-06 10:06:19.867: E/AndroidRuntime(426):   at android.app.ActivityThread.main(ActivityThread.java:4627) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at java.lang.reflect.Method.invoke(Method.java:521) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at dalvik.system.NativeStart.main(Native Method) 03-06 10:06:19.867: E/AndroidRuntime(426): Caused by: java.lang.ClassCastException: java.util.Date 
03-06 10:06:19.867: E/AndroidRuntime(426):  at com.ladessa.jccb.MainActivity.createScheduledNotification(MainActivity.java:59) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at com.ladessa.jccb.MainActivity.onCreate(MainActivity.java:110) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
03-06 10:06:19.867: E/AndroidRuntime(426):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
03-06 10:06:19.867: E/AndroidRuntime(426):  ... 11 more
Run Code Online (Sandbox Code Playgroud)

Ham*_*atu 5

在下面的行......

(Date)formatter.parse(str)
Run Code Online (Sandbox Code Playgroud)

你正在尝试使用强制java.util.Date类型Date对象来java.sql.Date输入Date对象...这就是为什么它会抛出它Exception

java.lang.ClassCastException: java.util.Date cannot be cast to java.sql.Date
Run Code Online (Sandbox Code Playgroud)

由于进口以下包装而导致...

import java.sql.Date;
Run Code Online (Sandbox Code Playgroud)

你应该导入包如下...所以,你应该删除上面的导入并导入下面的导入.

import java.util.Date;
Run Code Online (Sandbox Code Playgroud)

  • 你怎么知道?问题中没有"java.sql.Date",也没有错误的迹象...... (2认同)