【发布时间】:2012-12-06 11:11:51
【问题描述】:
我有一个程序,代码如下:
在 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)
我查过数据库,数据库中的很多记录都可以处理没有任何问题,除了这一条。我可以知道这个错误的可能原因是什么吗?我想模拟这个问题,但我不知道如何复制它。有人有什么建议吗?
【问题讨论】: