使用getDate错误地读取MySql日期

时间:2016-07-30 13:28:35

标签: java mysql

我的mysql db中有两个日期字段。

他们在我的数据库中看起来像这样。

enter image description here

当我使用resultSet.getDate将它们拉入java时,我在java中得到以下日期......

29/01/2016 00:00:00,3/01/2016 00:00:00

我的地图代码如下......

masterList.setRpmPromoCompDetailStartDate(resultSet.getDate(DaoConstants.COLUMN_HEADER_RPM_PROMO_COMP_DETAIL_START_DATE));
masterList.setRpmPromoCompDetailEndDate(resultSet.getDate(DaoConstants.COLUMN_HEADER_RPM_PROMO_COMP_DETAIL_END_DATE));

我的域对象看起来像这样......

public class MasterList {

    private Date rpmPromoCompDetailStartDate;
    private Date rpmPromoCompDetailEndDate;

除月份外,输出中的所有内容都是正确的。任何人都可以就可能出现的问题给我一些建议吗?

感谢

修改

这是我尝试过的修复...

            Timestamp startDateTs = resultSet.getTimestamp(DaoConstants.COLUMN_HEADER_RPM_PROMO_COMP_DETAIL_START_DATE);
            java.util.Date startDate = null;
            if (startDateTs != null){
                startDate = new java.util.Date(startDateTs.getTime());
            }
            masterList.setRpmPromoCompDetailStartDate(startDate);

            Timestamp endDateTs = resultSet.getTimestamp(DaoConstants.COLUMN_HEADER_RPM_PROMO_COMP_DETAIL_END_DATE);
            java.util.Date endDate = null;
            if (endDateTs != null){
                endDate = new java.util.Date(endDateTs.getTime());
            }

1 个答案:

答案 0 :(得分:0)

使用resultset.getTimeStamp获取日期

 java.util.Date date;
 Timestamp timestamp = resultSet.getTimestamp(i);
 if (timestamp != null)
 date = new java.util.Date(timestamp.getTime()));