查询当天的订单数量

可以先获取当前时间的日期,然后获取当天的0时对应的timestamp对象和第二天0时对应的timestamp对象,然后用时间字段between A and B就可以查出当天的订单数量。

获取数据库timestamp对象一般是通过timestamp的构造函数,传入毫秒数来构造timestamp对象。

因此我们需要获得所需时间所对应的毫秒数。

方法1

可以利用Calendar的静态方法getInstance来获取当前时间,返回一个Calendar对象。
通过Calendar.get(Calendar.YEAR)来获取Calendar对象的年,把里面的参数换成静态属性月,日等可以获得Calendar对象的月,日等。
这样获得了年月日,通过java.util.Date的构造函数传入年月日就可以得到对应日期,默认时间为0时的对象。(需要注意传入的年需要减1900)

然后通过getTime方法获取当前Date对象所对应的毫秒数,用该毫秒数作为timestamp的构造函数的参数创建timestamp对象。
至此就获得了今天时间对应的上限和下限。

    /**
     * @return获取当天日期的开始和结束
     */
    public Timestamp[] getDateStartAndEnd(){
        Calendar calendar=Calendar.getInstance();
        int year=calendar.get(Calendar.YEAR);
        int month=calendar.get(Calendar.MONTH);
        int date=calendar.get(Calendar.DATE);
        Date start1=new Date(year-1900,month,date);
        Date end1=new Date(year-1900,month,date+1);
        Timestamp start2=new Timestamp(start1.getTime());
        Timestamp end2=new Timestamp(end1.getTime());
        Timestamp[] arr=new Timestamp[2];
        arr[0]=start2;
        arr[1]=end2;
        return arr;
    }

不过Date的传年月日构造方法已经标记了即将移除,官方提醒使用Calendar方法。因此推荐使用第二种

方法2(推荐使用)

可以通过直接用Calendar对象来获取毫秒数,直接用set设置Calendar对象的时间为0,然后获取毫秒数创建timestamp对象。之后再获取日期,设置日期加一,再获取毫秒数创建timestamp对象。

 /**
     * @return获取当天日期的开始和结束
     */
    public Timestamp[] getDateStartAndEnd(){
        Calendar calendar=Calendar.getInstance();
        calendar.set(Calendar.HOUR,0);
        calendar.set(Calendar.MINUTE,0);
        calendar.set(Calendar.SECOND,0);
        calendar.set(Calendar.MILLISECOND,0);
        Timestamp start=new Timestamp(calendar.getTimeInMillis());
        calendar.set(Calendar.DATE,calendar.get(Calendar.DATE)+1);
        Timestamp end=new Timestamp(calendar.getTimeInMillis());
        Timestamp[] arr=new Timestamp[2];
        arr[0]=start;
        arr[1]=end;
        return arr;
    }

提醒:
timestamp的valueOf方法对字符串的匹配,要求比较高,不能省略时间。
而java.util.Date可以省略时间,只用日期就可以构造一个Date对象。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值