2013-02-23 80 views
0

我想解析一個字符串使用Java SimpleDateFormat。 我的字符串是:Java解析數據字符串Android

2013年2月23日下午10點十二分52秒

以oracle的Javadoc,我寫了下面圖案:

MM/DD/YYYY KK :mm:ss a

恕我直言,我不確定PM(aa),我tryied也只'a'或'aaa',但我總是得到一個ParseException。有趣的是,在測試項目作爲一個Java應用程序運行時,它的工作原理:

當我在Android項目運行它,它不工作:

SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy KK:mm:ss a"); 
    try { 
     Date data = formatter.parse("2/23/2013 10:12:52 PM"); 
     System.out.println(data); 
    } catch (ParseException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

可能有人幫助我?

+0

就像我下面說的,你的代碼在新的Android活動項目中工作得很好。我自己試了一下,logcat報道:「Sat Feb 23 22:12:52 GMT + 00:00 2013」​​這是正確的。 – 2013-02-25 19:31:13

回答

0

我解決了它。我沒有說我的「2/23/2013 10:12:52 PM」字符串由Json庫組成......也許它不是作爲整個字符串構建的,而是由字符組成的,這可能是SimpleDateFormat的一個問題。我試圖啓動以下代碼:

String data1 = "2/23/2013 10:12:52 PM"; //a string built by Json parser 
String data2 = "2/23/2013 10:12:52 PM"; //created by hand as new String 
System.out.println(data2.equals(data1)); 

它返回false!

解決方案:

String data1 = "2/23/2013 10:12:52 PM"; //a string built by Json parser 
String data2 = "2/23/2013 10:12:52 PM"; //created by hand as new String 
StringBuffer sb = new StringBuffer(); 
sb.append(data1); 
System.out.println(data2.equals(data1)); 

現在返回true!

0

上一個測試項目作爲Java應用程序運行時,它的工作原理:

確保您導入正確的庫在你的Android項目。

+0

對不起,SimpleDateFormat是一個標準的Java類,它不需要外部庫。 – Emaborsa 2013-02-25 18:12:30

0

如果您的格式爲「MM/...」,那麼您的日期將以「02/23 ...」開頭。

只能用一個「M」來嘗試。

+0

同一天的部分,如果你打算有2/1/2013然後只放一個'd'。把兩個「D」和「M」放在一起,如果你有02/01/2013 – 2013-02-23 23:32:27

+0

我在一個普通的新的Android活動項目中運行他的代碼,它可以工作。 1或2個M無關緊要。結果是:「Sat Feb 23 22:12:52 GMT + 00:00 2013」​​ – 2013-02-23 23:53:04

+0

我嘗試了M和MM。在一個簡單的java項目中,具有單個字符2的日期也可以通過帶MM的模式來識別。 但是,我做了一些測試使用M或MM,但它不起作用。 – Emaborsa 2013-02-25 18:13:22