【问题标题】:Difference between current time and future time in javajava中当前时间和未来时间的区别
【发布时间】:2015-03-31 01:31:30
【问题描述】:

我正在使用 Java Timer 类来运行某些任务。对于我的程序,我将给出 starttime 和 endtime 作为参数,它们将询问 java 计时器何时开始以及何时结束任务。

在运行我的任务时,我想定期获取并检查当前时间和结束时间之间的差异,如果当前时间等于结束时间,则通过调用 timer.cancel() 方法取消任务。

我的startTimeendTime参数时间格式是这样的

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()

【问题讨论】:

    标签: java time timer timertask difference


    【解决方案1】:

    可能是,您只是不知道如何获得 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();
    }
    

    试试吧,祝你好运

    【讨论】:

    • 别担心,很简单。将第2行:SimpleDateFormat sDateFormat = new SimpleDateFormat( "hh:mm");改为SimpleDateFormat sDateFormat = new SimpleDateFormat( "HH:mm");
    【解决方案2】:

    可能不是时间问题..

    如果比较两个字符串,最好使用equals()

    试试这个:

    if(currentTime.equals(endTime)) {
        timer.cancel();
    }
    

    【讨论】:

    • 我不关心这种情况。我需要找到当前时间是否等于结束时间
    • 其实我不明白.. currentTime 是从其他班级给出的还是你必须得到它?那么 endTime 呢?如果您只给出了 endTime,则使用 System.currentTimeMillis() 获取 long 类型的 currentTime 并与给定的 endTime 进行比较。
    • 当我以毫秒为单位与 System.currentTimeMillis() 进行比较时,if 条件未触发
    • 尝试 if ( System.currentTimeMillis() >= endTime){} 也许 currentTimeMillis() 会跳过确切的 endTime。
    【解决方案3】:

    您应该使用“currentTime.equals(endTime)”函数来比较字符串,而不是 == 运算符。“.equals”函数检查字符串的实际内容,== 运算符检查两者的引用是否对象相等,这在您的情况下无效。

    【讨论】:

      【解决方案4】:

      您想检查当前时间是否等于结束时间 - 可以理解,但您希望检查它是否相等的级别 - 直到分钟、秒或毫秒?因为如果您按毫秒或更短的时间进行比较,即使时间可能与秒相同,您也可能永远不会取消。

      如果您想检查到毫秒 - 只需将结束日期转换为毫秒 date.getTime() 并减去 System.currentTimeMillis() - 如果结果为 0,则与毫秒相同。如果差值小于 1000 (1 * 1000),则在秒内。如果小于 60000 (1 * 60 * 1000) 则在分钟内。

      【讨论】:

        猜你喜欢
        • 2011-05-08
        • 1970-01-01
        • 2015-07-29
        • 2022-01-21
        • 2011-03-15
        • 1970-01-01
        • 2015-09-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多