-1

'2012-08-2211:55:38のような日付を解析するにはどうすればよいですか

「8月8日」まで

formateador = new SimpleDateFormat( "d MMM");で試してみました。

しかし、「解析不能な日付」の例外が発生します。

あなたが私を助けてくれることを願っています。ありがとう

4

4 に答える 4

4

文字列から。に解析しますDate。次に、別のパターンを使用して、から文字列にフォーマットできます現在、表示されているコードを考えると、「d MMM」というパターンを期待しDateて、値「2012-08-22 11:55:38」を解析しようとしているようですが、明らかにそうではありません。に準拠します。次のようなものが必要です。SimpleDateFormat

SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",
                                                    Locale.US);
// TODO: Set the time zone appropriately
Date date = inputFormat.parse(inputText);

SimpleDateFormat outputFormat = new SimpleDateFormat("d MMM", targetLocale);
// TODO: Set the time zone appropriately
String outputText = outputFormat.format(date);

Javaで大量の日付/時刻作業を行っている場合は、はるかに優れた日付/時刻APIであるJodaTimeを調べる必要があることに注意してください。

于 2012-08-25T19:57:20.490 に答える
1

これは機能するはずです(私があなたが何を求めているかを理解している場合):

String s = "2012-08-22 11:55:38";
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dt = fmt.parse(s);
DateFormat output = new SimpleDateFormat("d 'of' MMMM", Locale.US);
System.out.println(output.format(dt)); //prints 22 of August
于 2012-08-25T19:57:27.987 に答える
1

入力文字列から日付を解析しているときに問題が発生しました。

「2012-08-2211:55:38」は「yyyy-MM-ddHH:mm:ss」形式であり、入力文字列から最初に日付を解析するために使用する必要があります。

次に、Dateオブジェクトを取得したら、必要な形式で日付をフォーマットできます。

于 2012-08-25T19:57:32.927 に答える
1

質問が正しければ、最初の文字列を日付に解析してから、結果の日付を秒の文字列にフォーマットしようとします。これが当てはまる場合は、以下のコードを参照してください。

SimpleDateFormat f1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat f2 = new SimpleDateFormat("dd 'of' MMMM");
try {
  java.util.Date date = f1.parse("2012-08-22 11:55:38");
  System.out.println(f2.format(date));
} catch (ParseException ex) {
  ex.printStackTrace(); 
}
于 2012-08-25T19:57:50.963 に答える