Java 为什么日期的值是错误的?

Java 为什么日期的值是错误的?,java,Java,我试图使用getTime()方法比较两个日期,但第一个日期总是比第二个日期差。调试后,我计算出第一个日期(endTime)是31-12-1969 07:00:00,而不是01-01-1970 07:00:00。这是代码片段: if (endTime.before(currentTime)) { // action } 注意:我在不同的时区(UTC)上试用过,它在endTime=01-01-1970 07:00:00时运行良好。我使用java.util.Date

我试图使用getTime()方法比较两个日期,但第一个日期总是比第二个日期差。调试后,我计算出第一个日期(endTime)是31-12-1969 07:00:00,而不是01-01-1970 07:00:00。这是代码片段:

if (endTime.before(currentTime)) {
             // action
    }
注意:我在不同的时区(UTC)上试用过,它在endTime=01-01-1970 07:00:00时运行良好。我使用java.util.Date来初始化结束时间

有什么解决办法吗

编辑:

此方法返回当前时间:

public static Date getCurrentTime() {
        Calendar calendar = GregorianCalendar.getInstance();
        int hour = calendar.get(Calendar.HOUR_OF_DAY);
        int minute = calendar.get(Calendar.MINUTE);
        int second = calendar.get(Calendar.SECOND);
        return new Time(hour, minute, second);
    }
这是endTime的初始化:

Date endTime = new Date();

时区可以变成负数。尝试(伪代码):


时间=时间请添加更多代码。比如你是如何初始化你的
endTime
currentTime
变量的。请学习堆栈溢出的工作原理,并阅读如何提高问题的质量。然后你的问题包括你的源代码,它可以被其他人编译和测试。嗨@SyedAhmedJamil,我已经编辑了这篇文章,请查看。你对这两个变量都有什么期望。我假设您正在调用
Date endTime=new Date()在以后的某个时间,对吗?你想达到什么目标?我仍然无法理解您面临的问题是日期初始化为1969年12月31日,之后我将使用getTime()方法将其添加到另一个日期。我面临的问题是,结果和预期结果之间总有一天的差距。