【问题标题】:Android DateTime comparison with Date Only precision #2Android DateTime 与 Date Only 精度的比较 #2
【发布时间】: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 如果不是

但是这些比较方法都没有给出预期的结果。

我哪里错了?

谢谢

【问题讨论】:

标签: android datetime


【解决方案1】:

好的,我仍然不确定为什么上述方法不起作用,但我找到了一种似乎有效的方法。

我改变了它,而不是使用 .setHour(1) .setMinute(0) .setSeconds(0) 方法。

我现在正在使用:

Date today0 = Calendar.getInstance().getTime();
Date today = new Date(today0.getYear(), today0.getMonth(), Integer.valueOf(String.valueOf(android.text.format.DateFormat.format("dd", today0))));

LastUpdateStr = getResult();  // Example results "2015-12-22 08:24:41"
LastDate0 = formatter.parse(LastUpdateStr);
Date LastDate = new Date(LastDate0.getYear(), LastDate0.getMonth(), Integer.valueOf(String.valueOf(android.text.format.DateFormat.format("dd", LastDate0))));  

在我以前的方法不起作用的地方,新方法导致比较成功的日期:

LastDate.after(today);  

谢谢

【讨论】:

    猜你喜欢
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-04
    相关资源
    最近更新 更多