-4

私は Java アプリケーションで作業していますが、Dateオブジェクトを作成しようとすると問題が発生します。

だから私はやった:

Calendar dataRendimentoLordoCertificatoCalendar = Calendar.getInstance();
dataRendimentoLordoCertificatoCalendar.set(annoCorrente - 1, 10, 01);

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dataRendimentoLordoCertifiacato = new Date(sdf.format(dataRendimentoLordoCertificatoCalendar.getTime()));

Eclipse デバッガーを使用すると、( Dateコンストラクターsdf.format(dataRendimentoLordoCertificatoCalendar.getTime())にパラメーターとして渡された) の値が2015-11-01であることがわかります(これは、2015 年 11 月 1 日のことです)。

問題は、この行が実行されるときです。

Date dataRendimentoLordoCertifiacato = new Date(sdf.format(dataRendimentoLordoCertificatoCalendar.getTime()));

私はこの例外を取得します:

Exception in thread "main" java.lang.IllegalArgumentException
    at java.util.Date.parse(Date.java:598)
    at java.util.Date.<init>(Date.java:255)
    at com.mycompany.dbmanager.MyProject.getRendimentoLordoCertificato(PucManager.java:64)

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

このソリューションが必要な理由はわかりませんが、String (getTime の戻り型) を使用する場合は、次のように parse を使用する必要があります。

public static void main(String[] args) throws ParseException {
  Calendar dataRendimentoLordoCertificatoCalendar = Calendar.getInstance();

  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  Date dataRendimentoLordoCertifiacato = sdf.parse(sdf.format(dataRendimentoLordoCertificatoCalendar.getTime()));

  System.out.println(dataRendimentoLordoCertifiacato);
}

しかし、私はあなたが何を望んでいるのか正確にはわかりません。DATEがあるため、この日付の文字列を取得し、それを解析して日付に戻します:-D

于 2016-08-24T13:42:05.793 に答える