0

いくつかの日付を文字列に変換し、データベースに保存しました

      DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");

文字列として出力される場合、「12-09-2012 02:33:00」のようになります。

次に、を使用してそれらを取得しようとしています

      DateFormat formatter = new SimpleDateFormat("hh:mm:ss"); 

これは、これが例外メッセージであり、解析不能な日付であるというparseexceptionを私に与えます:

java.text.ParseException: 解析不能な日付: "12-09-2012 02:33:00" (オフセット 2)

私がやっていることをよりよく理解するためのコードを次に示します。

    String start="";
    String slut="";
    DateFormat formatterday = new SimpleDateFormat("hh:mm:ss");

            start=formatterday.format(formatterday.parse(a.startTime));
            slut=formatterday.format(formatterday.parse(a.endTime));  

最初に解析してからフォーマットすると、解析中にエラーが表示されるように、ステートメントを分離しようとしました。

4

2 に答える 2

2

@Ken a.startTime 変数の日付形式は、「hh:mm:ss」形式にする必要があります。

a.startTime の値が 02:33:00 のような場合、コードは機能するはずです。

a.startTime の値を確認し、正しい日付形式を使用してください。

于 2012-09-10T13:33:40.200 に答える
2

単純な日付形式は特定のパターンを受け入れ、文字列値「12-09-2012 02:33:00」は、明らかに特定のパターン「hh:mm:ss」に従っていません。元の日付文字列を日付オブジェクトに変換するには、元のパターンを使用する必要があります。

簡単な例:

DateFormat formatter1 = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
DateFormat formatter2 = new SimpleDateFormat("hh:mm:ss");

String originalDateValue = "12-09-2012 02:33:00";
Date originalDate = formatter1.parse( originalDateValue );

String shortDateValue = formatter2.format( originalDate );
Date shortDate = formatter2.parse( shortDateValue );

System.out.println( originalDateValue );
System.out.println( originalDate );

System.out.println( shortDateValue );
System.out.println( shortDate );

これは出力されます:

12-09-2012 02:33:00
Wed Sep 12 02:33:00 CEST 2012
02:33:00
Thu Jan 01 02:33:00 CET 1970

shortDate の値は紀元の初めからのものであることに注意してください -> 1.1.1970.

于 2012-09-10T13:37:27.207 に答える