2013-07-24 194 views
0

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

当我运行继承的代码时,出现错误java.text.ParseException:Unparseable date:“2009年4月8日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) 

有问题的代码看起来像

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

任何建议将非常赞赏。

回答

5

我想不通这是为什么在正确

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

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

这就是今天的日期看起来像使用此格式

24/7/13 23:03:17.171 

,这是你的输入格式是什么样子

4/8/2009 06:00.0 

一个看起来并不像其他。

+0

在我发布这个之前,我实际上玩过年度问题,但事实并非如此。刚刚通过我写的单元测试进行了确认。 问题是我有':'而不是'。'。秒钟在哪里。加上下面的代码。 感谢您的帮助。 –