Java解析数据字符串Android

问题描述:

我想解析一个字符串使用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

我解决了它。我没有说我的“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!

上一个测试项目作为Java应用程序运行时,它的工作原理:

确保您导入正确的库在你的Android项目。

+0

对不起,SimpleDateFormat是一个标准的Java类,它不需要外部库。 – Emaborsa 2013-02-25 18:12:30

如果您的格式为“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