0

JavaSimpleDateFormatを使用して文字列を解析しようとしています。私の文字列は:

2013年2月23日22:12:52

オラクル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();
    }

誰かが私を助けてもらえますか?

4

3 に答える 3

0

テストプロジェクトでJavaアプリケーションとして実行すると、次のように機能します。

Androidプロジェクトに正しいライブラリをインポートしたことを確認してください。

于 2013-02-23T23:25:12.457 に答える
0

形式が「MM/...」の場合、日付は「02/23...」で始まります。

1つの「M」だけで試してください。

于 2013-02-23T23:27:55.347 に答える
0

私はそれを解決しました。私の「2013年2月23日午後10時12分52秒」の文字列が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を返します!

于 2013-02-25T20:16:04.037 に答える