hibernate日期查询引发的问题

下面的代码是查询某两个日期间的记录
	public int countTodayLogin(){
// return (Integer)createQuery("select count(*) from User where lastLoginTime between ? and ?")
// .setDate(0, this.getStartOfToday())
// .setDate(1, this.getEndOfToday())
// .setCacheable(true)
// .uniqueResult();
return (Integer)createCriteria()
.add(Restrictions.between("lastLoginTime",getStartOfToday(),getEndOfToday()))
.setProjection(Projections.count("id"))
.uniqueResult();
}

不知道为什么 第一种方法就是查不出结果来 (注掉的代码)
另外下面两个方法是获取一天的开始和结束时间
感觉写的挺麻烦的 不知道有没有更简单的方法
	private Date getStartOfToday(){
Calendar today = Calendar.getInstance();
int year = today.get(Calendar.YEAR);
int month = today.get(Calendar.MONTH);
int day = today.get(Calendar.DAY_OF_MONTH);
return new GregorianCalendar(year, month, day, 0, 0, 0).getTime();
}

private Date getEndOfToday(){
Calendar today = Calendar.getInstance();
int year = today.get(Calendar.YEAR);
int month = today.get(Calendar.MONTH);
int day = today.get(Calendar.DAY_OF_MONTH);
return new GregorianCalendar(year, month, day, 23, 59, 59).getTime();
}


还有一点就是SimpleDateFormat格式化时要注意的问题: HH大些输出24小时格式 hh小写是12小时
下班了 撤退!
在使用SimpleDateFormat时格式化时间的 yyyy.MM.dd 为年月日而如果希望格式化时间为12小时制的,则使用hh:mm:ss 如果希望格式化时间为24小时制的,则使用HH:mm:ss
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值