Java 找不到未来的日期?

Java 找不到未来的日期?,java,date,Java,Date,我的日志文件显示: Date now = taskExecutionDate; taskNextRunTime = task.getNextRunTime(); long delta = taskNextRunTime - now.getTime(); log.debug("now.getTime() = " + now.getTime() + ", " + now); log.debug("taskNextRun

我的日志文件显示:

        Date now = taskExecutionDate;
        taskNextRunTime = task.getNextRunTime();
        long delta = taskNextRunTime - now.getTime();

        log.debug("now.getTime() = " + now.getTime() + ", " + now);
        log.debug("taskNextRunTime = " + taskNextRunTime + ", " + new Date(taskNextRunTime));
        log.debug("now.getTime() = " + now.getTime() + ", " + now);
            log.debug("taskNextRunTime = " + taskNextRunTime + ", " + new Date(taskNextRunTime));
            log.debug("delta = " + delta);
            log.debug("endDate = " + task.getEndDate());
            log.debug("startDate = " + task.getStartDate());
            if(task.getEndDate().equals(task.getStartDate())){
                taskNextRunTime = task.getNextRunTime();
                log.debug("taskNextRunTime in = " + taskNextRunTime + ", " + new Date(taskNextRunTime));

            }
我没有访问源代码task.class的权限。我一直想找一个合适的工作,但一直没能找到。我怎样才能在将来得到日期,或者如果有工作的话?谢谢你的帮助

更新:Task.class方法:

    now.getTime() = 1440518657145, Tue Aug 25 12:04:17 EDT 2015
    taskNextRunTime = 0, Wed Dec 31 19:00:00 EST 1969
    delta = -1440518657145
    endDate = Tue Aug 25 23:59:00 EDT 2015
    startDate = Tue Aug 25 00:00:01 EDT 2015

我期望的输出是获取未来日期,即taskNextRunTime。每当用户选择将来的日期/时间时,它都会保存在taskNextRunTime中,但当我检查日志时,它总是taskNextRunTime=0,Wed Dec 31 19:00:00 EST 1969。now.getTime可以正常工作,但是task.getNextRunTime会给我1969年12月31日星期三19:00:00,而不是将来选择的日期。

你的问题是task类,因此如果你没有访问此代码或类的权限,你将需要找到访问此代码或类的人。@PeterLawrey用相关代码更新了它。Peter可能是对的,但你也应该更详细地描述你的问题——你想要的结果到底是什么?解释这与您当前的输入有什么不同,解释哪一行给出了错误的值,以及为什么您无法修复它-几乎所有可能有用且可能看起来很明显的细节-我们花更少的时间了解您的代码发生了什么以及您要问什么,您得到答案的可能性越大。@Jay有两个条件返回0,您将其转换为新的日期0,打印为您看到的日期。其中一个条件返回0。请确保getNextRunTimeFrom小于getEndDate。
    public long getNextRunTime();
0  aload_0 [this]
1  invokestatic java.lang.System.currentTimeMillis() : long [24]
4  invokevirtual task.Task.getNextRunTime(long) : long [25]
7  lreturn
  Line numbers:
    [pc: 0, line: 239]



  // Method descriptor #141 (J)J
  // Stack: 4, Locals: 7
  public long getNextRunTime(long arg0);
 0  aload_0 [this]
 1  invokevirtual task.Task.getEndDate() : java.util.Date [26]
 4  ifnull 21
 7  aload_0 [this]
 8  invokevirtual task.Task.getEndDate() : java.util.Date [26]
11  invokevirtual java.util.Date.getTime() : long [27]
14  lload_1 [arg0]
15  lcmp
16  ifge 21
19  lconst_0
20  lreturn
21  aload_0 [this]
22  invokevirtual task.Task.getStartDate() : java.util.Date [28]
25  invokevirtual java.util.Date.getTime() : long [27]
28  lload_1 [arg0]
29  invokestatic java.lang.Math.max(long, long) : long [29]
32  lstore_3
33  aload_0 [this]
34  invokevirtual task.Task.getSchedule() : task.Schedule [30]
37  lload_3
38  aload_0 [this]
39  invokevirtual task.Task.getStartDate() : java.util.Date [28]
42  invokevirtual .task.Schedule.getNextRunTimeFrom(long, java.util.Date) : long [31]
45  lstore 5
47  aload_0 [this]
48  invokevirtual task.Task.getEndDate() : java.util.Date [26]
51  ifnull 69
54  aload_0 [this]
55  invokevirtual task.Task.getEndDate() : java.util.Date [26]
58  invokevirtual java.util.Date.getTime() : long [27]
61  lload 5
63  lcmp
64  ifge 69
67  lconst_0
68  lreturn
69  lload 5
71  lreturn
  Line numbers:
    [pc: 0, line: 251]
    [pc: 19, line: 253]
    [pc: 21, line: 258]
    [pc: 33, line: 261]
    [pc: 47, line: 265]
    [pc: 67, line: 267]
    [pc: 69, line: 270]
  Stack map table: number of frames 2
    [pc: 21, same]
    [pc: 69, append: {long, long}]