java 判断当前时间在时间范围内方法
一、不需要引入第三方jar
import cn.hutool.core.date.DateUtil; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.util.Calendar; import java.util.Date; /** * 检查当前时间是否为夜间(22:00 到第二天6:00) * @param dateTime 当前时间戳 秒 * @return */ public static boolean checkNight(long dateTime){ try{ // 获取当前点位对应的小时数 LocalDateTime localDateTime = getDateTimeOfTimestamp(dateTime * 1000); int hour = localDateTime.getHour(); return (hour <= 5 || hour >= 22); }catch (Exception e){ e.printStackTrace(); } return false; } /** * 时间戳 转 LocalDataTime * @param timestamp 毫秒 * @return */ public static LocalDateTime getDateTimeOfTimestamp(long timestamp) { Instant instant = Instant.ofEpochMilli(timestamp); ZoneId zone = ZoneId.systemDefault(); return LocalDateTime.ofInstant(instant, zone); }
二、使用 hutool 工具类
1、在 pom.xml 添加
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-core</artifactId> <version>5.6.5</version> </dependency>
2、使用 hutool 工具类
package com.example.jkytest.modules; import cn.hutool.core.date.DateUtil; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public static void main(String[] args) throws ParseException { String format = "HH:mm:ss"; SimpleDateFormat sdf = new SimpleDateFormat(format); //获取当前时间 // Date nowTime = new SimpleDateFormat(format).parse(Tools.getTimeString(calendar, format)); Date nowTime = sdf.parse("00:00:01"); //范围开始时间 Date startTimeO = sdf.parse("22:00:00"); //范围结束时间 Date endTimeO = sdf.parse("24:00:00"); //范围开始时间 Date startTimeT = sdf.parse("00:00:00"); //范围结束时间 Date endTimeT = sdf.parse("6:00:00"); System.out.println(DateUtil.isIn(nowTime,startTimeO,endTimeO) || DateUtil.isIn(nowTime,startTimeT,endTimeT)); }
对上图使用方法
总结
下一篇:
Java中的元空间(Metaspace)