文字列「--」で示した「空の」日付をどのように解析する必要があるかを尋ねているようです。そして、簡単な答えは、それを解析しないということです!
代わりに、次のようなことを行います。
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yy"); // or whatever
if (str.equals("- -")) {
invprbm.setFollowupDate(null);
} else {
invprbm.setFollowUpDate(formatter.parse(str));
}
そして、実際に日付から文字列に移動したい場合は、次のようにします。
if (date == null) {
invprbm.setFollowupDate("- -");
} else {
invprbm.setFollowUpDate(formatter.format(date));
}
現在のアプローチの問題は、 DatesSimpleDateFormat
に対応するように設計されていないことです。null
文字列を解析してDateオブジェクトを生成したり、null
Dateオブジェクトをフォーマットしたりすることはできませんnull
。
現在のコードが実際に行っているのは、入力文字列から日付/時刻のコンポーネントを抽出する方法をパーサーに指示しない形式を指定することです。このメソッドは、値がゼロparse
のDateオブジェクトを返します。getTime()
あなたがやろうとしていることはSimpleDateFormat
クラスのjavadoc仕様の範囲外であるため、これは不合理ではありません。