Java 为什么日期的值是错误的?
我试图使用getTime()方法比较两个日期,但第一个日期总是比第二个日期差。调试后,我计算出第一个日期(endTime)是31-12-1969 07:00:00,而不是01-01-1970 07:00:00。这是代码片段: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
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()方法将其添加到另一个日期。我面临的问题是,结果和预期结果之间总有一天的差距。