次のコードを含むプログラムがあります。
XXX.java で、SVC_APPR_DT_IN_MILLIS に、String.valueOf(date.getTime())ストロング テキストを使用して Oracle データベースのレコードから取得した日付値を設定しました。文字列として保存されます。
private void setApprovalDateProperty(Date date) {
setAdditionalProperty(SVC_APPR_DT_IN_MILLIS, String.valueOf(date.getTime()));
}
YYY.java では、 new Date(Long.valueOf())を使用して Date を返します。
private Date getApprovalDate() throws ParseException {
String approvalDateInMillis = this.record
.getAdditionalProperty(XXX.SVC_APPR_DT_IN_MILLIS);
return new Date(Long.valueOf(approvalDateInMillis));
}
レコードの 1 つについて、 「04/12/2012 14:44:38」がデータベース内のレコードの日付である場合、以下のエラーがスローされます。
For input string: "04/12/2012 14:44"
java.lang.NumberFormatException: For input string: "04/12/2012 14:44"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:412)
at java.lang.Long.valueOf(Long.java:518)
at YYY.getApprovalDate(YYY.java:634)
データベースを確認しましたが、データベース内の多くのレコードは問題なく処理できますが、これは例外です。このエラーの考えられる原因を教えてください。問題をシミュレートしたいのですが、再現する方法がわかりません。誰にも提案はありますか?