1

私のアプリではユーザーは日付を選択2013-01-02 しますが、MySql DBでは列形式が似ている02-Jan-2013ため、日付形式を変更したい

私のコードは次のとおりです。

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
    SimpleDateFormat formatter1 = new SimpleDateFormat("dd-mmm-yyyy");
    Date start_date = (Date)formatter.parse(GBRF.getStart_date());//GBRF.getStart_date() returns Form Data as 2013-01-02
    String dt=formatter1.format(start_date);
    Date sd=(Date)formatter1.parse(dt);

終了時にsdこのように日付を印刷しますWed Jan 02 00:01:00 IST 2013

私はそのフォーマットを望んでいません..ただ私は好きです02-Jan-2013

アイデアをください..事前に感謝します

4

3 に答える 3

4

でフォーマットできます。その後、日付インスタンスを印刷しようとすると、出力に変更がないDateクラスのメソッドが呼び出さDateString、実装からのものであるため、その出力を変更できません。SimpleDateFormattoString()toString()

注:ご使用の形式では、月にMを使用する必要があります(大文字のMに注意してください)。

于 2013-01-07T07:41:40.283 に答える
2

オブジェクト自体にはフォーマットがDateありません。それはある時点を保持します。フォーマットは、に変換するとき、またはから変換するときに機能しますString

mまた、この形式では、数か月ではなく数分で使用されることに注意してください。したがって、おそらく。のような形式が必要ですdd-MMM-yyyy

試す

System.out.println(formatter1.format(sd));

好きなように日付を印刷します。

于 2013-01-07T07:42:19.390 に答える
0

最初に日付形式を変更する必要があります:

`SimpleDateFormat formatter1 = new SimpleDateFormat("dd-MMM-yyyy");`

あなたの場合、単に印刷すると、オブジェクトに再度dt変換するのではなく、必要な形式で日付を印刷する必要があります。Datesd

印刷sdすると、書式設定なしで Date オブジェクトのデフォルトの String 実装が印刷されます。これはまさに出力として表示されているものです。

于 2013-01-07T07:46:08.283 に答える