java - 我想根据我得到的毫秒时间来获得今天或昨天的一天
问题描述
我今天和昨天必须返回字符串。我从函数中得到的毫秒数,那我该怎么办?我尝试了很多。
if((data.getStartTimeMilli()-86400000) < data.getStartTimeMilli())
{
return "Today";
}
else
{
return "Yesterday";
}
但它只会在今天回归。我在函数中传递了两个毫秒值,一个是startdatemili
和enddatemili
。这是一个日期范围。
解决方案
正如评论中提到的那样,通常today
并不意味着24
几小时前。
假设 now is 2018-10-06 15:20
,2018-10-06 00:01
应该被认为是today
,while 2018-10-05 23:59
is 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";
}
但要小心,当开始毫秒是 beforetoday
时,并不意味着它是yesterday
,它可能会早一天。
如果您今天确实想使用24 hours
限制:
Instant instant = Instant.now().minusMillis(86400000);
long millis = instant.toEpochMilli();
推荐阅读
- python - 在 Python 中使用 K-Medoids 聚类提取质心及其数据点?
- javascript - 具有有限读取访问权限的查询集合
- javascript - 为什么在我通过滑动移动幻灯片后 Swiper JS 箭头开始起作用,我该如何解决?
- javascript - 出现错误 TypeError: Promise.any 不是函数
- python - 在 Transitions 中将具有多个状态的模型附加到多台机器
- javascript - 桌面上的响应式设计模式在实际设备上的行为不同
- javascript - 如果我需要第三种报价,我该怎么办?
- python - 在python的for循环中调用不同的方法?
- javascript - MVC:Razor:将 SelectList 的 SelectedValue 绑定到文本框
- python - Python Pandas - 匹配两个系列中的值