java中,判断当前时间是否处于某个一个时间段内
今天同事拿了個問題問我,有一個回調工程,會一直查詢今日訂單表和回調表中的訂單數據,然后這條sql今日訂單日期是動態的,
?
select * from QYPT_QUERY_GOODS goods,qypt_pay_history_20180512 pay where goods.status=3?
and? goods.form_id=pay.id?
?
比如,今天是2018-05-12,訂單表就是qypt_pay_history_20180512 ,如果是2018-05-13,訂單表就是qypt_pay_history_20180512 ,今日訂單中有30分鐘的支付時間,超出就無法支付了,他問我說,如果客戶在2018-05-12 23:59下單了,到了第二天,2018-05-13,日期變了,今日訂單表也變了,然后就查詢不到對應的訂單數據了,但是,用戶剛剛下的這筆訂單有30分中的有效支付時間,相當于到2018-05-13 00:29都是可以支付的,但是日期已經發生改變,無法查詢對應的訂單信息了,
?
我想了一下,說,你可以判斷當前時間是否處于一個時間段內,即(處于 第二天的00:00~00:30),相當與昨天下單的最后支付有效時間,如果處于這個時間段內,你可以執行sql查詢昨天的訂單,即qypt_pay_history_20180512,然后將查詢出來的數據在和qypt_pay_history_20180513進行合并,就可以了,這樣就不會丟失數據了
?
這邊寫下判斷當前時間處于一個時間段的代碼
?
package cn.com;import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;/**?* @author 作者:吳林飛?* @version 創建時間:2018年5月11日 下午3:02:10?* 類說明 :*/ public class Time_test { public static void main(String[] args) { SimpleDateFormat df = new SimpleDateFormat("HH:mm");//設置日期格式 //初始化Date nowTime =null;Date beginTime = null;Date endTime = null;try {//格式化當前時間格式nowTime = df.parse(df.format(new Date()));//定義開始時間beginTime = df.parse("15:00");//定義結束時間endTime = df.parse("15:55");} catch (Exception e) {e.printStackTrace();}//調用判斷方法boolean flag = belongCalendar(nowTime, beginTime, endTime);//輸出為結果if(flag){//處于規定的時間段內,執行對應的邏輯代碼System.out.println(flag);}else{//不處于規定的時間段內,執行對應的邏輯代碼System.out.println(flag);}}/*** 判斷時間是否在時間段內* @param nowTime* @param beginTime* @param endTime* @return*/public static boolean belongCalendar(Date nowTime, Date beginTime, Date endTime) {//設置當前時間Calendar date = Calendar.getInstance();date.setTime(nowTime);//設置開始時間Calendar begin = Calendar.getInstance();begin.setTime(beginTime);//設置結束時間Calendar end = Calendar.getInstance();end.setTime(endTime);//處于開始時間之后,和結束時間之前的判斷if (date.after(begin) && date.before(end)) {return true;} else {return false;}} }?
總結
以上是生活随笔為你收集整理的java中,判断当前时间是否处于某个一个时间段内的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【DG】在Linux平台上搭建单实例的d
- 下一篇: Java 多个pdf合并成一个pdf