0

我继承了一些代码来移植到 Android。我在解析文本字符串并从中创建 UTC 日期时遇到问题的部分。

当我运行继承的代码时,我收到错误 java.text.ParseException: Unparseable date: "4/8/2009 06:00.0" (at offset 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)

有问题的代码看起来像

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);

任何建议将不胜感激。

4

1 回答 1

5

我不明白为什么这是正确的

您有一个 4 位数的年份,而不是yy= 两位数的年份。

更重要的是,您没有秒字段,毫秒字段只有一个数字。

这就是今天的日期使用这种格式的样子

24/7/13 23:03:17.171

这就是您的输入格式

4/8/2009 06:00.0

一个看起来不像另一个。

于 2013-07-24T23:02:24.940 回答