Java解析数据字符串Android

时间:2013-02-23 23:19:56

标签: android simpledateformat

我正在尝试使用Java SimpleDateFormat解析String。 我的字符串是:

  

2/23/2013 10:12:52 PM

作为oracle Javadoc,我写下了以下模式:

  

MM / dd / yyyy KK:mm:ss a

恕我直言,我不确定PM(aa),我也只尝试'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();
    }

有人能帮助我吗?

3 个答案:

答案 0 :(得分:0)

  

在测试项目上作为Java应用程序运行时,它可以工作:

确保在Android项目中导入了正确的库。

答案 1 :(得分:0)

如果您的格式为“MM / ...”,则您的日期将以“02/23 ...”开头。

仅尝试使用一个“M”。

答案 2 :(得分:0)

我解决了。我没有说我的“2/23/2013 10:12:52 PM”字符串是由Json库组成的...也许它不是构建为整个字符串,而是char由char构成,这可能是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!