当天
// 先获取当前毫秒值
long current = System.currentTimeMillis();
// 再获取当日的0点毫秒值
long zero = current-(current+TimeZone.getDefault().getRawOffset())%(1000*3600*24);
昨天
//有了今天的毫秒值,昨天的很好算,在原来的基础上减去一整天的毫秒值就行了
// 先获取当前毫秒值
long current = System.currentTimeMillis();
// 再获取昨天的0点毫秒值
long zero = current-(current+TimeZone.getDefault().getRawOffset())%(1000*3600*24) - 86400000;
这种方法性能是很高的
注意:
很多网上的计算当天时间戳的方法是下面这个
long current = System.currentTimeMillis();
long zero = current/(1000*3600*24)*(1000*3600*24) - TimeZone.getDefault().getRawOffset();
本文探讨了如何高效地计算当前、昨天以及任意日期的0点毫秒值,避免了常见错误,确保在早8点前也能得到准确结果。通过Java代码示例,详细解释了时间戳转换的正确实现方式,对于需要处理时间戳的开发者具有指导意义。
1227





