【问题标题】:hibernate restriction on date issue对日期问题的休眠限制
【发布时间】:2014-03-05 16:44:00
【问题描述】:

我面临休眠标准限制的问题。我在 db2 表中有 2014-03-05 20:07:33 的数据,我正在尝试根据以下标准获取数据:

hibernateCriteria.add(Restrictions.ge("eventTs",
            getLowerBoundDate(adminReportsBeanDTO.getFromDate())));
    hibernateCriteria.add(Restrictions.le("eventTs",
            getUpperBoundDate(adminReportsBeanDTO.getToDate())));
public static Date getLowerBoundDate(Date fromDate) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(fromDate);
    cal.set(Calendar.HOUR_OF_DAY, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    return cal.getTime();
}

/**
 * 
 * @param fromDate
 * @return
 */
public static Date getUpperBoundDate(Date toDate) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(toDate);
    cal.set(Calendar.HOUR_OF_DAY, 23);
    cal.set(Calendar.MINUTE, 59);
    cal.set(Calendar.SECOND, 59);
    cal.set(Calendar.MILLISECOND, 999);
    return cal.getTime();
}

从日期为 2014 年 3 月 5 日星期三 IST 00:00:00 到 2014 年 3 月 5 日星期三 23:59:59 IST

我在表格中有上述日期的记录,但没有显示。但报告显示的是下一个日期 3 月 6 日。

这是我的休眠标准

CriteriaImpl(com.gtech.lsp.beans.Audit:this[][eventTs>=Wed Mar 05 00:00:00 IST 2014,            eventTs<=Wed Mar 05 23:59:59 IST 2014])

请帮帮我。

【问题讨论】:

    标签: java hibernate hibernate-criteria


    【解决方案1】:

    您似乎在比较不同时区的日期!您的 Java 日历设置为印度时区 (IST)。数据库中的日期呢? 如果这是您的数据库时区,请尝试将您的日历时区设置为 GMT:

    TimeZone tz = TimeZone.getTimeZone("GMT");
    cal.setTimeZone(tz);
    

    【讨论】:

    • 数据库在美国,我的申请在印度
    • 但是您知道日期列的类型吗?如果是时间戳,则意味着可以在数据中设置时区。
    • 是的,数据类型是时间戳
    • 那么您的日期中一定已经保存了时区。在你的表上做一个简单的 sql 查询来获取日期,你应该可以看到它。
    • 我看不到时区。这是日期列的输出。 2014-03-05 20:07:33 2014-03-05 19:44:54 2014-03-05 19:44:59 2014-03-05 19:45:06 2014-03-05 19:45:13 2014-03-05 19:45:19 2014-03-05 20:15:01 2014-03-05 20:15:04 2014-03-05 20:15:11 2014-03-05 20:15:16 2014-03-05 20:15:23 2014-03-05 20:37:20
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2013-02-16
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多