// someTime is epoch in millis (UTC)
final long timeNow = new Date().getTime();
final long midnight = timeNow - timeNow % (3600 * 24 * 1000L);
final long yesterdayMidnight = midnight - (3600 * 24 * 1000L);
// check if same day.
if (someTime >= midnight)
// do something
// check if yesterday
if (someTime >= yesterdayMidnight)
编辑:我的目的是检查someTime是否在同一天或前一天没有做太多的重量级的东西。这是否适用于夏令时?
这是白天节能的原因吗?为什么?如果不是,最简单的逻辑是什么? (在你的代码,这是处理中的“自Unix毫秒为单位”来肯定),一切都在UTC,有效地 -
如果你说新的日期(); ,这意味着你指的是你系统的当前日期。无论您的系统日期设置为何,您只会获得该时间。 – Stunner
@MarounMaroun我相信这个问题实际上是“使用此代码时可以安全考虑可能的夏令时开关”。 –
@IvayloStrandjev感谢您的澄清。我已更改标题 – Lucas