一、不需要引入第三方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));
}
对上图使用方法
总结
如果此篇文章有帮助到您, 希望打大佬们能
关注
、点赞
、收藏
、评论
支持一波,非常感谢大家!
如果有不对的地方请指正!!!