4

データベースに保存されている文字列値(「2012-01-20」など)を2012年1月20日の形式に変換しようとしています。

私はいくつかの例を見てきましたが、それらはDateで動作するものを使用していSimpleDateFormatます。

ここでの例として、私が試した1つの方法がありますが、「try」は常に失敗し、結果はnullになります。

DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
Date convertedDate=null;

try {

    convertedDate = df.parse(datePlayed);                   

} catch(ParseException e){
    e.printStackTrace();
}   
4

3 に答える 3

17

つまり、解析に適切な形式を使用していません。2つの DateFormatインスタンスを使用する必要があります。1つは解析用で、もう1つはフォーマット用です。

DateFormat parser = new SimpleDateFormat("yyyy-MM-dd");
DateFormat formatter = new SimpleDateFormat("MMM dd, yyyy");
Date convertedDate = parser.parse(datePlayed);
String output = formatter.format(convertedDate);
于 2012-04-25T02:55:54.460 に答える
1
Date da = new Date();
SimpleDateFormat ft = new SimpleDateFormat("E, dd/MM/yyyy !");
System.out.println("Update : " + ft.format(da));

次の場所で日付スタイルを変更できます。E, dd/MM/yyyy !

幸運を !

于 2015-07-23T16:54:05.537 に答える
0

日付がデータベースから読み取られる場合は、java.sql.Dateとして保存します。その後、おそらくjava.util.Dateに変換した後、SimpleDateFormatを使用できます。ResultSetオブジェクトから、日付を抽出できます。

あなたが意味しているのは、他の誰かによってDBから抽出されたテキストの日付が与えられ、それで立ち往生しているということです。使用してみてください:

 DateFormat df = new SimpleDateFormat("yyyy-MM-dd");  
 df.setLenient(true);  
 convertedDate = df.parse(datePlayed.trim() );

また、解析する前に解析しているテキストを表示して、datePlayed値が期待どおりであることを確認してください。を使用parseIntすると、データの前後に余分なスペースがあるとエラーが発生するため、を呼び出すとtrim()余分なスペースが削除されます。

于 2012-04-25T03:01:57.583 に答える