我必须返回今天和昨天的字符串。我从函数中获得的毫秒数,那么我该怎么办?我尝试了很多。
if((data.getStartTimeMilli()-86400000) < data.getStartTimeMilli())
{
return "Today";
}
else
{
return "Yesterday";
}
但它只会在今天回归。
我在函数中传递了两个毫秒值,一个是 startdatemili
和 enddatemili
。
这是一个日期范围。
最佳答案
正如评论中提到的,通常今天
并不意味着24
小时前。
假设现在是2018-10-06 15:20
,2018-10-06 00:01
应该被视为今天
,而2018-10-05 23:59
是昨天
,尽管它们都在24
小时之内。
该解决方案适用于上述假设。
获取今天的开始毫秒数:
ZonedDateTime zonedDateTime = ZonedDateTime.now();
zonedDateTime = zonedDateTime.truncatedTo(ChronoUnit.DAYS);
long millis = zonedDateTime.toInstant().toEpochMilli();
然后与之比较:
if((data.getStartTimeMilli() > millis) {
return "Today";
} else
return "Yesterday";
}
但是要小心,当开始毫秒在今天
之前时,并不意味着它是昨天
,它可能会早一天。
如果您确实想使用24 小时
来限制今天:
Instant instant = Instant.now().minusMillis(86400000);
long millis = instant.toEpochMilli();
关于java - 我想根据我得到的毫秒时间来获取今天或昨天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52676499/