java 当前时间和未来时间之间的差异
Difference between current time and future time in java
我正在使用 Java 计时器 class 来完成 运行 某些任务。对于我的程序,我将提供开始时间和结束时间作为参数,它们将询问 java 计时器何时开始以及何时结束任务。
虽然 运行 我的任务,但我想定期获取并检查当前时间和结束时间之间的差异,如果当前时间等于结束时间,则通过调用 timer.cancel()
方法取消任务。
我的startTime
和endTime
参数时间格式是这样的
String startTime = "12:00";
String endTime = "12:01";
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
Date date1 = format.parse(startTime);
Date date2 = format.parse(endTime);
long difference = date2.getTime() - date1.getTime();
我想检查当前时间是否等于结束时间。
但我想检查当前时间等于结束时间的条件并调用 timer.cancel()
可能不是时间问题..
如果比较两个字符串,最好使用equals()
试试这个:
if(currentTime.equals(endTime)) {
timer.cancel();
}
你应该使用"currentTime.equals(endTime)"函数来比较字符串,而不是== operator.The ".equals"函数检查字符串的实际内容,==运算符检查是否引用了两个对象都相等,这在您的情况下无效。
您想检查当前时间是否等于结束时间 - 这可以理解,但您希望检查它是否相等到什么级别 - 直到分钟、秒或毫秒?因为如果您以毫秒或更短的时间进行比较,即使时间可能与秒相同,您也可能永远不会取消。
如果您想检查到毫秒 - 只需将结束日期转换为毫秒 date.getTime() 并减去 System.currentTimeMillis() - 如果结果为 0,则与毫秒相同。如果差异小于 1000 (1 * 1000),则在秒内。如果小于60000(1 * 60 * 1000)就是分钟内。
可能是,您只是不知道如何获取 endTime。
String startTime = "12:00";
SimpleDateFormat sDateFormat = new SimpleDateFormat(
"hh:mm");
String endTime = sDateFormat.format(new java.util.Date());
if (startTime.equals(endTime)) {
timer.cancel();
}
试试吧,祝你好运
我正在使用 Java 计时器 class 来完成 运行 某些任务。对于我的程序,我将提供开始时间和结束时间作为参数,它们将询问 java 计时器何时开始以及何时结束任务。
虽然 运行 我的任务,但我想定期获取并检查当前时间和结束时间之间的差异,如果当前时间等于结束时间,则通过调用 timer.cancel()
方法取消任务。
我的startTime
和endTime
参数时间格式是这样的
String startTime = "12:00";
String endTime = "12:01";
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
Date date1 = format.parse(startTime);
Date date2 = format.parse(endTime);
long difference = date2.getTime() - date1.getTime();
我想检查当前时间是否等于结束时间。
但我想检查当前时间等于结束时间的条件并调用 timer.cancel()
可能不是时间问题..
如果比较两个字符串,最好使用equals()
试试这个:
if(currentTime.equals(endTime)) {
timer.cancel();
}
你应该使用"currentTime.equals(endTime)"函数来比较字符串,而不是== operator.The ".equals"函数检查字符串的实际内容,==运算符检查是否引用了两个对象都相等,这在您的情况下无效。
您想检查当前时间是否等于结束时间 - 这可以理解,但您希望检查它是否相等到什么级别 - 直到分钟、秒或毫秒?因为如果您以毫秒或更短的时间进行比较,即使时间可能与秒相同,您也可能永远不会取消。
如果您想检查到毫秒 - 只需将结束日期转换为毫秒 date.getTime() 并减去 System.currentTimeMillis() - 如果结果为 0,则与毫秒相同。如果差异小于 1000 (1 * 1000),则在秒内。如果小于60000(1 * 60 * 1000)就是分钟内。
可能是,您只是不知道如何获取 endTime。
String startTime = "12:00";
SimpleDateFormat sDateFormat = new SimpleDateFormat(
"hh:mm");
String endTime = sDateFormat.format(new java.util.Date());
if (startTime.equals(endTime)) {
timer.cancel();
}
试试吧,祝你好运