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);
到
这就是它抛出此异常的原因