我有一个带有以下代码的程序:
在 XXX.java 中,我使用String.valueOf(date.getTime())强文本将 SVC_APPR_DT_IN_MILLIS 设置为从 Oracle 数据库中的记录中获取的日期值。它存储为字符串:
private void setApprovalDateProperty(Date date) {
setAdditionalProperty(SVC_APPR_DT_IN_MILLIS, String.valueOf(date.getTime()));
}
在 YYY.java 中,我使用new Date(Long.valueOf())返回日期
private Date getApprovalDate() throws ParseException {
String approvalDateInMillis = this.record
.getAdditionalProperty(XXX.SVC_APPR_DT_IN_MILLIS);
return new Date(Long.valueOf(approvalDateInMillis));
}
对于其中一条记录,它会引发以下错误,其中“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)
我查了数据库,数据库中的很多记录都可以处理没有任何问题,除了这一条。我可以知道这个错误的可能原因是什么吗?我想模拟这个问题,但我不知道如何复制它。有人有什么建议吗?