【问题标题】:Comparing same date is giving me -1 in JAVA比较同一日期在 JAVA 中给了我-1
【发布时间】:2017-06-06 10:54:49
【问题描述】:

我正在比较两个相同的日期,我得到的输出是 -1。据我所知,同一日期应该为 0。

调试模式的图像附在此处。这个问题怎么解决?

【问题讨论】:

  • 你能把代码贴出来吗?
  • 答案很简单:这些日期不一样。
  • 从您的屏幕截图看来,Date 对象等于秒。一种可能的解释是它们的毫秒数不同。一种检查方法是打印出todayDate.getTime(),另一个日期也同样如此。这将为您提供多位数的数字(自纪元以来的毫秒数),奇怪的是这些数字是否在最后三位数字内不同。
  • 给你一个小贴士,如果可以的话(如果可以的话),更喜欢现代的 LocalDate 类,用于一天中的时间无关紧要的日期。
  • 最好给我们一个Minimal, Complete, and Verifiable example。那么我们就不会被称为仅仅是猜测。

标签: java date date-comparison


【解决方案1】:

您可以使用这个post 来比较两个没有时间的日期。

if (removeTime(questionDate).equals(removeTime(today)) 
  ...

public Date removeTime(Date date) {    
    Calendar cal = Calendar.getInstance();  
    cal.setTime(date);  
    cal.set(Calendar.HOUR_OF_DAY, 0);  
    cal.set(Calendar.MINUTE, 0);  
    cal.set(Calendar.SECOND, 0);  
    cal.set(Calendar.MILLISECOND, 0);  
    return cal.getTime(); 
}

【讨论】:

    猜你喜欢
    • 2015-02-15
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多