当前位置: 首页 > 知识库问答 >
问题:

对日期问题的Hibernate限制

邢飞鸿
2023-03-14

我在Hibernate条件限制中面临问题。我有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();
}

从日期是Wed Mar05 00:00:00IST 2014到日期是Wed Mar05 23:59:59IST 2014

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

以下是我的Hibernate标准

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])

请帮帮我。

共有1个答案

岳晟
2023-03-14

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

TimeZone tz = TimeZone.getTimeZone("GMT");
cal.setTimeZone(tz);
 类似资料:
  • 问题内容: 您好,我在示例中使用了hibernate模式。对于bean Table Audit Trial,我想获取包含上限和下限的日期范围之间的审计试用。我的代码如下 我的开始日期是。且结束日期为。但是它只会将结果赋予。不执行包含性搜索。我正在使用SQL Server。 问题答案: 我认为您的auditDate实际上是一个时间戳。如果是这样的话,那是正常的,因为25/05/2011表示25/05

  • 我想添加日期字段到我的实体类。我在我的DDL脚本(data.sql)中使用了以下日期格式-'yyyy-mm-dd'现在我不知道该为日期导入哪个类。我应该从java.util.*还是从java.sql.*导入日期? 以及我应该为该列添加哪些注释 事先谢谢你

  • 例如:字符串日期:Wed Jan 15 14:29:00 2020,DB:2020-01-16 05:50:40.000000+0000 有时,我还会遇到这样的错误:DateOverflowWarning:有些时间戳比Python datetime所能表示的要大。时间戳从纪元开始以毫秒为单位显示。

  • 我无法确定日期。据我所见,它只设定了正确的日期,而不是月份和年份。我不明白我做错了什么。 这是我的密码: 格式化ate.js 和组件: 我使用的npm反应下拉日期,并遵循从他们的留档的例子。也许我用错了useState或Use效应钩子?也许有人与React和日期的经验可以帮助我解决这个问题。

  • 我正在构建一个react应用程序,使用MongoDb和express后端作为数据库。我的一个模型具有属性日期,类型为date。 然后,在我的反应应用程序上,我有一个表单,我在其中输入所有这些信息。但是如果我把一个日期,比如01/11/2017,保存的日期是31/10/2017。据我所知,这是因为MongoDd以UTC格式存储日期。有没有办法改变这种行为?因为同样,当我尝试按日期搜索时,这个问题也给

  • 我在Spring/Hibernate应用程序中使用了会话工厂(注入DAO对象的单例Bean),我使用的是服务层架构,我有以下问题: 每当我从数据库中获取域对象时,它都会使用Hibernate会话工厂提供的新会话。在多次请求同一行的情况下,这会导致具有同一域对象的多个实例。(如果使用单个会话,它将返回指向同一引用的多个对象)因此,对其中一个域对象所做的任何更改都不会被代表同一行的其他域对象考虑在内。