【发布时间】:2015-12-23 16:30:59
【问题描述】:
我认为我有一个可行的方法,但我没有得到预期的结果。
我最初询问如何将 2 个 DateTime 与 Date 精度进行比较 - 忽略 Time 元素。
Android DateTime comparison with Date Only precision
我将这种方法付诸实施,Debug 显示了按预期设置的变量,但比较仍然失败。
我从 LastUpdate 的字符串表示开始。
Date today = Calendar.getInstance().getTime();
// Set Time to 1:00am so as to eliminate Time from comparison
today.setHours(1); ;
today.setMinutes(0);
today.setSeconds(0);
LastUpdateStr = getResult; // Example results "2015-12-22 08:24:41"
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date LastDate = null;
try {
LastDate = formatter.parse(LastUpdateStr);
} catch (ParseException e) {
e.printStackTrace();
}
// Set Time to 1:00am so as to eliminate Time from comparison
LastDate.setHours(1); ;
LastDate.setMinutes(0);
LastDate.setSeconds(0);
此时我应该有 2 个 DateTimes(今天和 LastDate),它们具有相同的 Time 元素,以便从比较中消除它。
但是,当我尝试比较这 2 个日期时,我没有得到预期的结果。
如果我使用
LastDate.compareTo(today);
我应该期望结果是:
0 -- 如果日期相同
-1 -- 如果今天早于 LastDate
1 -- 如果 LastDate 早于今天
如果我执行以下操作
LastDate.before(today);
我应该期望结果是:
TRUE 如果 LastDate 早于今天
FALSE 如果不是
但是这些比较方法都没有给出预期的结果。
我哪里错了?
谢谢
【问题讨论】: