0

jquery 日付ピッカーで struts2.x を使用しています。
dd/mm/yyyy の形式で表示したいです。しかし、データベースから取得すると、yyyy-mm-dd のようになります。その後、必要な形式に変換しましたが、型は文字列です。次に、日付型に変換しました。しかし、形式が変更されます。

Date getRiskCommDate()
{
String fString = null;
System.out.println("Coming Date from DB"+riskCommDate);
if(riskCommDate!=null)
{
SimpleDateFormat format = new SimpleDateFormat();
format.applyPattern("dd/MM/yyyy");
fString = format.format(riskCommDate);
}
System.out.println("Formated Date in  String Form "+fString);
Date d = new Date(fString);
System.out.println("Formated Date in Date form Date "+d);
return d;  
}  

出力:

DB からの来る日付 2012-07-04
文字列形式の書式設定
された日付 04/07/2012 日付形式の書式設定された日付 Date Apr 07 00:00:00 IST 2012

どんなアイデアでも大歓迎です。

4

3 に答える 3

4

このjava.util.Dateクラスには、形式を保持するプロパティがありません。

の値をDateカスタム形式で表示するには、 formaton のメソッドを呼び出しますSimpleDateFormat

これを行う場合:

System.out.println(dateInstance)

…で を呼び出しているだけtoString()ですDate。そのメソッドは、日付をStringバージョンの固定形式で返します。

コメントに基づいて

とにかく日付インスタンスでカスタム形式が必要な場合は、日付インスタンスをラップするカスタムクラスを作成できます

class MyDate{
  private Date date;
  //provide appropriate accessor
  //override toString() method to support required output
}

またextend Date

class MyDate extends Date{
   //override toString() method to support required output
   @Override
   public String toString(){
        //convert `this` to  String with required format with the help of `SimpleDateFormat`
   }
}
于 2012-07-05T07:17:13.047 に答える
2

日付は、ロケールに基づいた形式で出力されます。作成したい形式を「記憶」していません。特定の形式を持つのは文字列のみなので、それが必要な場合は文字列のままにしておいてください。

于 2012-07-05T07:18:25.717 に答える