废话不多说直接贴代码。

我的日期格式是 8:00-22:00

要用的自己换下格式哈。

public class CheckClosingTimeUtil {

    /**
* 校验当前时间是否在规定时间内
* @param businessHours 某商店营业时间或者是别的
* @return true:在规定时间 false:未在规定时间
*/
public static boolean checkClosingTime(String businessHours){ if(StringUtils.isNotBlank(businessHours)){
BulidBusinessHours bulidBusinessHours = new BulidBusinessHours(businessHours).invoke();
long start = bulidBusinessHours.getStart();
long end = bulidBusinessHours.getEnd();
Calendar currentTime = Calendar.getInstance();
long current = currentTime.getTimeInMillis();
if(current>start && current<end){
return true;
}else{
return false;
}
}
return false;
} /**
* 校验当前时间是否在规定时间内2
* @param businessHours 某商店营业时间或者是别的
* @param current 单位;当前时间 - 毫秒级
* @return
*/
public static boolean checkClosingTime(String businessHours,long current){ if(StringUtils.isNotBlank(businessHours)){
BulidBusinessHours bulidBusinessHours = new BulidBusinessHours(businessHours).invoke();
long start = bulidBusinessHours.getStart();
long end = bulidBusinessHours.getEnd();
if(current>start && current<end){
return true;
}else{
return false;
}
}
return false;
} private static class BulidBusinessHours {
private String businessHours;
private long start;
private long end; public BulidBusinessHours(String businessHours) {
this.businessHours = businessHours;
} public long getStart() {
return start;
} public long getEnd() {
return end;
} public BulidBusinessHours invoke() {
List<String> businessTime = Arrays.asList(businessHours.split("-"));
List<String> startBusinessTime = Arrays.asList(businessTime.get(0).split(":"));
List<Integer> startTime = startBusinessTime.stream().map(e -> Integer.valueOf(e)).collect(Collectors.toList());
List<String> endBusinessTime = Arrays.asList(businessTime.get(1).split(":"));
List<Integer> endTime = endBusinessTime.stream().map(e -> Integer.valueOf(e)).collect(Collectors.toList()); Calendar drugstoreStartTime = Calendar.getInstance();
drugstoreStartTime.set(Calendar.HOUR_OF_DAY, startTime.get(0));
drugstoreStartTime.set(Calendar.MINUTE, startTime.get(1));
drugstoreStartTime.set(Calendar.SECOND, 0);
start = drugstoreStartTime.getTimeInMillis(); Calendar drugstoreEndTime = Calendar.getInstance();
drugstoreEndTime.set(Calendar.HOUR_OF_DAY, endTime.get(0));
drugstoreEndTime.set(Calendar.MINUTE, endTime.get(1));
drugstoreEndTime.set(Calendar.SECOND, 0);
end = drugstoreEndTime.getTimeInMillis();
return this;
}
}
}

【java】校验当前时间是否在规定的时间内的更多相关文章

  1. 身份证校验,前台js校验,后台java校验

    js校验: var vcity={ 11:"北京",12:"天津",13:"河北",14:"山西",15:"内 ...

  2. [Java]Java日期及时间库插件 -- Joda Time.

    来到新公司工作也有一个多月了, 陆陆续续做了一些简单的项目. 今天做一个新东西的时候发现了 Joda Time的这个东西, 因为以前用的都是JDK原生的时间处理API, 大家都知道Java原生的时间处 ...

  3. java学习第13天( java获取当前时间,有关大数据的运算及精确数字运算,Date类)

    一 java获取当前时间 学习一个函数,得到当前时间的准确值 System.currectTimeMillis(). 可以得到以毫秒为单位的当前时间.它主要用于计算程序运行时间,long start= ...

  4. 【转】JAVA 8 日期/时间(Date Time)API指南

    前言 本来想写下Java 8的日期/时间API,发现已经有篇不错的文章了,那就直接转载吧~ PS:主要内容没变,做了部分修改. 原文链接: journaldev 翻译: ImportNew.com - ...

  5. Java最重要的21个技术点和知识点之JAVA多线程、时间处理、数据格式

    (四)Java最重要的21个技术点和知识点之JAVA多线程.时间处理.数据格式  写这篇文章的目的是想总结一下自己这么多年JAVA培训的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能 ...

  6. 【MySQL】Java对SQL时间类型的操作(获得当前、昨天、前年。。时间)

    Java获得当前时间 java.util.Date date = new java.util.Date(); Timestamp time = new Timestamp(date.getTime() ...

  7. Java json设置时间格式,Jackson设置时间格式,json设置单引号

    Java json设置时间格式,Jackson设置时间格式,json设置单引号 >>>>>>>>>>>>>>> ...

  8. JAVA中的时间操作

    java中的时间操作不外乎这四种情况: 1.获取当前时间 2.获取某个时间的某种格式 3.设置时间 4.时间的运算 好,下面就针对这四种情况,一个一个搞定. 一.获取当前时间 有两种方式可以获得,第一 ...

  9. Java中日期时间API小结

    Java中为处理日期和时间提供了大量的API,确实有把一件简单的事情搞复杂的嫌疑,各种类:Date Time Timestamp Calendar...,但是如果能够看到时间处理的本质就可以轻松hol ...

随机推荐

  1. 多测师浅谈 学员实现价值就是我们的幸福_高级讲师肖sir

    学员实现价值就是我们的幸福 作为一名资深的IT高级讲师,在传统的行业IT薪资基本都是过万,作为一名IT培训教师,培养出在不同领域的测试,并且接触各种各样的产品,目前市场流行的比如银行业务系统,语音类系 ...

  2. C++冷知识(1)

    func()等价于func(void) 也就是说在C++中,参数列表为空意味着不接受任何参数.之所以要注意这一点是因为在C语言中,参数列表为空意味着参数不确定.两者的语义是有巨大差别的,作为学了C再学 ...

  3. BUUCTF-[极客大挑战 2019]HardSQL 1详解

    来到sql注入骚姿势,我们一点一点开始学 我们来到这道题,然后尝试注入,结果发现 拼接'or '1'='1 'or '1'='2如果是字符型注入则会报错,然而并没有而是显示的页面一样, 通过常规注入, ...

  4. selenium-绕过登录

    第一种方式:chrome-debug 1.现在终端输入一下命令,启动Chrome-debug模式 #windows a.首先将chrome的环境添加到PATH中 b.进入cmd 命令栏,输入:chro ...

  5. salesforce零基础学习(九十六)项目中的零碎知识点小总结(四)

    本篇参考: https://developer.salesforce.com/docs/atlas.en-us.216.0.apexcode.meta/apexcode/apex_classes_ke ...

  6. tr命令-转换和删除字符

    tr 转换和删除字符 支持标准输入 格式 tr [OPTION]...SET1[SET2] Translate, squeeze, and/or delete characters from stan ...

  7. 解决Java连接Oracle 12c存在的问题

    感谢作者 原文链接:https://blog.csdn.net/peng_wei_kang/article/details/80403486 1.发现项目报以下错误:   Caused by: jav ...

  8. CyclicBarrier(循环栅栏)

    CyclicBarrier public class CyclicBarrierDemo { public static void main(String[] args) { CyclicBarrie ...

  9. 用一道模板题理解多源广度优先搜索(bfs)

    题目: //多元广度优先搜索(bfs)模板题详细注释题解(c++)class Solution { int cnt; //新鲜橘子个数 int dis[10][10]; //距离 int dir_x[ ...

  10. 国云数据:中国版的Snowflake,国内数据中台领导者

    [股神巴菲特加持,今年最受关注美股IPO ] 这段时间, 由股神巴菲特54年来首次打新的美股IPO公司Snowflake迅速得到业界重点关注.Snowflake已于2020年9月16日正式上市,发行价 ...