Java 将字符串转换为日期时出错

Java 将字符串转换为日期时出错,java,date,Java,Date,我正在使用一种方法来计算两个日期之间的天数差。在执行计算之前,需要将日期字符串转换为日期,这给我带来了一个问题 public static int difDate(String data1, String data2) throws ParseException{ GregorianCalendar ini = new GregorianCalendar(); GregorianCalendar fim = new GregorianCalendar(); S

我正在使用一种方法来计算两个日期之间的天数差。在执行计算之前,需要将日期字符串转换为日期,这给我带来了一个问题

public static int difDate(String data1, String data2) throws ParseException{  
    GregorianCalendar ini = new GregorianCalendar();  
    GregorianCalendar fim = new GregorianCalendar();  
    SimpleDateFormat sdf = new SimpleDateFormat ("dd/MM/yyyy");  
    ini.setTime(sdf.parse(data1));  
    fim.setTime(sdf.parse(data2));  
    long dt1 = ini.getTimeInMillis();  
    long dt2 = fim.getTimeInMillis();  
    return (int) (((dt2 - dt1) / 86400000)+1);  
}
此代码正在生成异常:

12-26 07:31:38.027: E/AndroidRuntime(11452): FATAL EXCEPTION: main
12-26 07:31:38.027:E/AndroidRuntime(11452):java.lang.IllegalStateException:无法执行活动的方法 12-26 07:31:38.027:E/AndroidRuntime(11452):在android.view.view$1.onClick(view.java:3673) 12-26 07:31:38.027:E/AndroidRuntime(11452):在android.view.view.performClick(view.java:4278) 12-26 07:31:38.027:E/AndroidRuntime(11452):在android.view.view$PerformClick.run(view.java:17430) 12-2607:31:38.027:E/AndroidRuntime(11452):在android.os.Handler.handleCallback(Handler.java:725)上 12-26 07:31:38.027:E/AndroidRuntime(11452):在android.os.Handler.dispatchMessage(Handler.java:92)上 12-2607:31:38.027:E/AndroidRuntime(11452):在android.os.Looper.loop(Looper.java:213)上 12-26 07:31:38.027:E/AndroidRuntime(11452):位于android.app.ActivityThread.main(ActivityThread.java:5092) 12-26 07:31:38.027:E/AndroidRuntime(11452):位于java.lang.reflect.Method.Invokenactive(本机方法) 12-26 07:31:38.027:E/AndroidRuntime(11452):在java.lang.reflect.Method.invoke(Method.java:511) 12-26 07:31:38.027:E/AndroidRuntime(11452):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 12-2607:31:38.027:E/AndroidRuntime(11452):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:564) 12-26 07:31:38.027:E/AndroidRuntime(11452):在dalvik.system.NativeStart.main(本机方法) 12-26 07:31:38.027:E/AndroidRuntime(11452):由以下原因引起:java.lang.reflect.InvocationTargetException 12-26 07:31:38.027:E/AndroidRuntime(11452):位于java.lang.reflect.Method.Invokenactive(本机方法) 12-26 07:31:38.027:E/AndroidRuntime(11452):在java.lang.reflect.Method.invoke(Method.java:511) 12-2607:31:38.027:E/AndroidRuntime(11452):在android.view.view$1.onClick(view.java:3668) 12-2607:31:38.027:E/AndroidRuntime(11452):。。。还有11个 12-26 07:31:38.027:E/AndroidRuntime(11452):原因:java.text.ParseException:不可解析日期:“26.11.2013”(偏移量2处) 12-26 07:31:38.027:E/AndroidRuntime(11452):在java.text.DateFormat.parse(DateFormat.java:622) 12-26 07:31:38.027:E/AndroidRuntime(11452):位于com.sisteplantbrasil.util.DateHelper.DiferenceaEntredatas(DateHelper.java:58) 12-26 07:31:38.027:E/AndroidRuntime(11452):位于com.sisteplantbrasil.WorkOrderHistoricFilter.onBtnActionClick(WorkOrderHistoricFilter.java:222) 12-2607:31:38.027:E/AndroidRuntime(11452):。。。14多

有人知道我如何解决这个问题吗

ini.setTime(sdf.parse(data1));  

谢谢

您的输入是2013年11月26日,而不是2013年11月26日。更改输入的格式或更改创建
SimpleDataFormat

SimpleDateFormat(dd/MM/yyyy);


这就是它引发此异常的原因

您的输入是2013年11月26日,而不是2013年11月26日。更改输入的格式或更改创建
SimpleDataFormat

SimpleDateFormat(dd/MM/yyyy);


这就是它引发此异常的原因

您的输入是2013年11月26日,而不是2013年11月26日。更改输入的格式或更改创建
SimpleDataFormat

SimpleDateFormat(dd/MM/yyyy);


这就是它引发此异常的原因

您的输入是2013年11月26日,而不是2013年11月26日。更改输入的格式或更改创建
SimpleDataFormat

SimpleDateFormat(dd/MM/yyyy);

这就是它抛出此异常的原因