3

次の文字列日付をJavaでデータ形式に変換するにはどうすればよいですか?

"10/01/2012  06:45:23:245946"

私は次のコードを使用しています

dateFormat = new SimpleDateFormat("MM/dd/yyyy  hh24:mm:ss:SSS");
java.util.Date parsedDate = dateFormat.parse("10/01/2012  06:45:23:245946");

そして、私は次のエラーが発生しています

    java.text.ParseException: Unparseable date: "10/01/2012  06:45:23:245946"
4

4 に答える 4

7

SimpleDateFormathh24にはありません。使用する必要がありますHH

于 2012-11-28T07:26:08.417 に答える
5

あなたのパターンは間違っています。試す:

"MM/dd/yyyy  HH:mm:ss:SSS"

hh24日付マッチングパターンはありません。

時間のパターンは次のとおりです。

H  Hour in day (0-23)  Number  0  
k  Hour in day (1-24)  Number  24  

SimpleDateFormatjavadocで日付パターン全体を参照してください。

于 2012-11-28T07:26:03.033 に答える
4

もうすぐです。

hhの後の24を取り除き、HHに変更すると、機能するはずです。

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy  HH:mm:ss:SSS");
Date parsedDate = dateFormat.parse("10/02/2012  06:45:23:245946");
System.out.println(parsedDate);

これにより、時間内にエラーが発生しますが、すべての回答と同様に、日付を正常に解析します。これは、ミリ秒をから3桁にトリミングすることで修正されます245946245

ただし、6桁を使用する場合は、JodaTimeがマイクロ秒を処理するため、JodaTimeAPIを調べてより高度な日付処理を行うことをお勧めします。しかしjava.util.Date、あなたは運が悪いのではないかと思います。

このバグレポートを読む理由:http://bugs.sun.com/bugdatabase/view_bug.do?bug_id = 4148168

編集:私の悪い言葉遣いを指摘してくれたジェスパーに感謝します

于 2012-11-28T07:26:28.370 に答える
2

24日付形式の は無効な形式指定子です。それを除く。 HH24 時間スケールの時間に相当します。

dateFormat = new SimpleDateFormat("MM/dd/yyyy  HH:mm:ss:SSS");
于 2012-11-28T07:27:39.630 に答える