将字符串日期与今天的日期进行比较

sok*_*sok 2 java datetime android compare date

所以我有一个字符串是“2014-06-30 15:27”,如果是今天的日期,它应该只返回“15:27”,否则返回“30/06/2014”。我已经尝试过 simpleDateFormat.parse 但效果不佳。

holder.data.setText(mensagem.getDate());
Run Code Online (Sandbox Code Playgroud)

fip*_*ple 5

    final String stringDate = "2014-07-17 23:59";

    SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
    Date date = inputFormat.parse(stringDate);

    Calendar calendarDate = Calendar.getInstance();
    calendarDate.setTime(date);

    Calendar midnight = Calendar.getInstance();
    midnight.set(Calendar.HOUR_OF_DAY, 0);
    midnight.set(Calendar.MINUTE, 0);
    midnight.set(Calendar.SECOND, 0);
    midnight.set(Calendar.MILLISECOND, 0);

    if (calendarDate.compareTo(midnight) >= 0)
    {
        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
        System.out.println(timeFormat.format(date));
    }
    else
    {
        SimpleDateFormat dateTimeForm = new SimpleDateFormat("dd/MM/yyyy HH:mm");
        System.out.println(dateTimeForm.format(date));
    }
Run Code Online (Sandbox Code Playgroud)

  • 您忘记了 1) 传入日期也可能是午夜(因此,相等 - 不幸的是,您不能使用 `.equals(...)` 方法,因为它考虑了时区等因素,您需要 `compareTo(. ..)` ,这也可以让您一次性进行比较),2)时间戳具有小数秒。 (2认同)