java - 替代 LocalTime 检查时间是否在两次之间的范围内
问题描述
我有一个代码只支持 android 中的 API Level >= 26:
public static String in = "7:00:00";
public static String in_until = "11:50:00";
public static String breakout_out = "11:51:00";
public static String breakout_out_until = "12:50:00";
public static String breakout_in = "12:51:00";
public static String breakout_in_until = "13:10:00";
public static String out = "16:50";
public static String getCurrentTimeLogType() {
// LocalTime target = LocalTime.parse( DataHandler.timestamp().split(" ")[1] ) ;
LocalTime target = LocalTime.parse("7:30:00") ;
if (target.isBefore(in) || (target.isAfter(in) && target.isBefore(in_until)))
return "TIME-IN";
else if (target.isAfter(breakout_out) && target.isBefore(breakout_out_until))
return "BREAK-OUT";
else if (target.isAfter(breakout_in) && target.isBefore(breakout_in_until))
return "BREAK IN";
else if (target.isAfter(out))
return "TIME-OUT";
return "UNKNOWN!";
}
如果变量中的指定时间在当前时间之内,我想返回以返回要添加到数据库的时间戳类型。
例如,如果今天是下午 12:05:
if (12:05 >= breakout_out && 12:05 <= breakout_out_until)
return "BREAK-OUT"
我想实现这样的目标。如何在不使用不受支持的 LocalTime 模块的情况下实现这样的代码?
解决方案
像下面这样的东西呢。虽然没有测试。
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Date breakout_out = sdf.parse("11:51:00");
Date breakout_out_until = sdf.parse("13:10:00");
Date current_time = sdf.parse("12.05.00");
if(current_time.before(breakout_out_until) && current_time.after(breakout_out)) {
return "BREAK-OUT"
}
推荐阅读
- html - 如何正确调整图像大小?切换到移动视图时的图像裁剪
- reactjs - 刷新 Next.js 页面时出现错误 404
- html - CSS 是如何在没有文件的情况下应用的?
- powerbi - Power Query 预览顶部和排序依据
- android - 如何使用 Ionic 管理应用程序权限?
- clang - 数组访问和分配在由 clang 生成的 LLVM IR 输出中具有可变的对齐大小
- python - 添加
和 标记化文档行的标记 - android - 将 USB 附件设备连接到在 AVD 中运行的 Android 虚拟设备
- android - 使用 ST25 android SDK 的 NFC 标签密码保护
- redux - React-Redux 如何保存状态