如何检查日期在android中的10天内?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (229)

我写了这段代码来检查给定的日期是10天之内还是10天之外,但是AlarmManager.INTERVAL_DAY总是给0。如何检查给定的日期是在android或java的10天内?

long lastdate=1535826537767

if ((System.currentTimeMillis() - lastdate) < (AlarmManager.INTERVAL_DAY * 10)) {
    Log.d("Status", "Date within 10 days")       
} else {
    Log.d("Status", "Date within 10 days")
}
提问于
用户回答回答于

只是:

long ten_days_in_in_millis = 864000000;
if ((System.currentTimeMillis() - lastdate) < ten_days_in_in_millis) {..
用户回答回答于

java.time

您可以使用Java 8及更高版本中内置的java.time类来检查某个日期是否在过去10天内。

首先:将lastdate(您已经拥有)转换为LocalDate。

Instant instant = Instant.ofEpochMilli(lastdate) ; // A moment in UTC.
LocalDate originalDate = instant.atZone(ZoneId.systemDefault()).toLocalDate(); 
LocalDate tenDaysOldDate= LocalDate.now().minusDays(10); //10 days old date

if (Period.between(tenDaysOldDate, originalDate ).getDays() > 10)
      //greater than 10 days

LocalDate是不可变的和线程安全的。这个类应该比有问题的Date类更受欢迎。

点也是不可变的和线程安全的。它以年,月和日来衡量时间。

大多数java.time 功能都在ThreeTen-Backport项目中反向移植到Java 6和Java 7 。在ThreeTenABP项目中进一步适应早期的Android 。请参阅如何使用ThreeTenABP ...

扫码关注云+社区

领取腾讯云代金券