如何计算制造日期和月份之前最好的到期日期在数据库中给出
问题描述:
我有一个数据库,它保存制造日期的值,最好在月份之前以'YYYY-MM-DD'格式给出日期。 例如制造日期是2014-01-09,最好在前一个月给出的是12个月,或者可以是数据库中给出的11个月。每当我试图从检索数据库日期它给例外DATE“12”列2如何计算制造日期和月份之前最好的到期日期在数据库中给出
我试过是
public void calculateExpiryDate(List<Item> items) {
// TODO Auto-generated method stub
List<Item> ItemList1 = new ArrayList<Item>();
String query = "select mfg_date,UseBeforeInMonths from cheese_tbl";
PreparedStatement prepStmt = null;
try {
prepStmt = con.prepareStatement(query);
} catch (SQLException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
ResultSet rs = null;
try {
rs = prepStmt.executeQuery();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
while (rs.next()) {
Item i1=new Item();
java.sql.Date dbSqlDate = rs.getDate(2);
i1.setManufacturingDate(rs.getDate("mfg_date"));
i1.setManufacturingDate(rs.getDate("UseBeforeInMonths"));
ItemList.add(i1);
}
System.out.println(ItemList1);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
的格式错误但是这给了我错误格式日期
灿任何人都可以帮助我计算产品的有效期限。 谢谢。
答
如果我理解正确,您希望以YYY-MM-DD格式给出生产日期,并在几个月内存储到“最佳日期前”的时间。
我会将该持续时间存储在一个整数中,并使用Jodatime api(http://www.joda.org/joda-time/或者如果您使用Java SE8 http://www.oracle.com/technetwork/articles/java/jf14-date-time-2125367.html)来计算最佳之前的日期。
这种工作方式如下:
LocalDateTime manufacturingDate = new LocalDateTime(rs.getDate("mfg_date"));
LocalDateTime bestBefore = manufacturingDate.plusMonths(rs.getInt("UseBeforeInMonths"));
希望这有助于。
+0
非常感谢你 – sss
数字'12'如何可以格式为'YYYY-MM-DD'?或者最好是一个月,或者是格式为“YYYY-MM-DD”的字符串。 – Paolo
@Paolo对不起..日期格式为'YYYY-MM-DD' – sss