2 回答
TA贡献1876条经验 获得超6个赞
正如评论中提到的,通常today不是指24几小时前。
假设现在是2018-10-06 15:20,2018-10-06 00:01应该被认为是today,而2018-10-05 23:59是yesterday,尽管它们都在24几小时内。
该解决方案适用于上述假设。
获取今天的起始毫秒:
ZonedDateTime zonedDateTime = ZonedDateTime.now();
zonedDateTime = zonedDateTime.truncatedTo(ChronoUnit.DAYS);
long millis = zonedDateTime.toInstant().toEpochMilli();
然后与它进行比较:
if((data.getStartTimeMilli() > millis) {
return "Today";
} else
return "Yesterday";
}
但是要小心,当开始毫秒在之前时today,并不意味着它是yesterday,它可能会提前一天。
如果您确实想在24 hours今天使用限制:
Instant instant = Instant.now().minusMillis(86400000);
long millis = instant.toEpochMilli();
TA贡献1784条经验 获得超2个赞
有很多方法可以找到它。
使用简单的 Java API:
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
// Assuming we are expecting milliseconds from today or yesterday only.
if(( System.currentTimeMillis() - c.getTimeInMillis()) > 0 )
{
return "Today";
}
else
{
return "Yesterday";
}
添加回答
举报