我继承了一些代码来移植到Android.我遇到问题的部分解析文本字符串并从中创建UTC日期.
当我运行继承的代码时,我得到错误java.text.ParseException:Unparseable date:"4/8/2009 06:00.0"(在偏移量14处)偏移量14指向十进制的毫秒数.我无法弄清楚为什么这是不正确的
异常错误总计
java.text.ParseException: Unparseable date: "4/8/2009 06:00.0" (at offset 14)
at java.text.DateFormat.parse(DateFormat.java:622)
at gbl.util.test.UTC_test.test2(UTC_test.java:32)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)
Run Code Online (Sandbox Code Playgroud)
有问题的代码看起来像
String date = "4/8/2009";
String time = "06:00.0";
SimpleDateFormat utcDateTime = new SimpleDateFormat("d/M/yy HH:mm:ss.SSS");
utcDateTime.setTimeZone(TimeZone.getTimeZone("UTC"));
utcDateTime.parse(date+" "+time);
Run Code Online (Sandbox Code Playgroud)
任何建议将非常感激.
我无法弄清楚为什么这是正确的
你有一个4位数的年份而不是a yy=两位数的年份.
更重要的是,您没有秒字段,只有一个数字表示毫秒字段.
这就是今天的日期看起来像使用这种格式
24/7/13 23:03:17.171
Run Code Online (Sandbox Code Playgroud)
这就是你的输入格式
4/8/2009 06:00.0
Run Code Online (Sandbox Code Playgroud)
一个看起来不像另一个.