今天和昨天我都必须返回字符串。我从函数获得的毫秒数,那我该怎么办?我尝试了很多。
if((data.getStartTimeMilli()-86400000) < data.getStartTimeMilli())
{
return "Today";
}
else
{
return "Yesterday";
}
但是它只会在今天返回。
我在函数中传递了两个毫秒值,一个是startdatemili
和enddatemili
。
是一个日期范围。
答案 0 :(得分:4)
如评论中的硫磺硫醚一般,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";
}
但是要小心,当起始Milli早于today
时,并不表示它是yesterday
,可能要早一天。
如果您确实想使用24 hours
来限制今天:
Instant instant = Instant.now().minusMillis(86400000);
long millis = instant.toEpochMilli();
答案 1 :(得分:2)
有很多方法可以找到它。
使用简单的Java API:
word