如何检查日期是否是今天

Rav*_*mar 4 android date date-comparison

我得到的当前日期如下:

public void getCurrentDate(View view) {
    Calendar calendar = Calendar.getInstance();
    SimpleDateFormat mdformat = new SimpleDateFormat("yyyy / MM / dd ");
    String strDate = "Current Date : " + mdformat.format(calendar.getTime());
    display(strDate);
}
private void display(String num) {
    TextView textView = (TextView) findViewById(R.id.current_date_view);
    textView.setText(num);
}
Run Code Online (Sandbox Code Playgroud)

但我想检查该日期是否是今天的日期。但我不知道如何检查。

pau*_*Xkt 5

您可以按照@aliaksei的答案进行操作,效果很好。但在 Android 中,如果 java.time 不可用,您也可以使用java.time(API 级别 26)或ThreetenABP 。

但首先您必须考虑“今天的日期”是相对的这一事实。现在,此时此刻,世界各地可能正处于不同的“今天”。在美洲和欧洲,现在是 4 月 10 日,但在太平洋的某些地区,已经是 4 月 11 日了。

您可以选择特定的时区,或者只使用设备的区域,我认为就是这种情况。在这种情况下,只需使用 JVM 默认时区即可。

然后使用 ThreetenABP 将 转换Calendar为 a LocalDate,然后与今天的日期进行比较:

// calendar I want to check
Calendar cal = ...

// convert to LocalDate
LocalDate date = DateTimeUtils.toZonedDateTime(cal).toLocalDate();

// compare with today (now() is using the JVM default timezone)
if (date.isEqual(LocalDate.now(ZoneId.systemDefault()))) {
    // today
}
Run Code Online (Sandbox Code Playgroud)