2013-07-24 193 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

在我發佈這個之前,我實際上玩過年度問題,但事實並非如此。剛剛通過我寫的單元測試進行了確認。 問題是我有':'而不是'。'。秒鐘在哪裏。加上下面的代碼。 感謝您的幫助。 –