话不多说,直接上代码,两行代码搞定。
(240502补充)不过之前的写法是 return ts - ts % 86400000 - 28800000;
后来发现这么写有BUG,在当天8:00之前获取的时间戳是前一天0点的时间戳,所以重新研究并修改为如下代码:
/**
* 获取当天零点的时间戳
*
* @return 当天零点(00:00:00.000)的时间戳
*/
public static long getTodayStartTs() {
long ts = System.currentTimeMillis();
return ts - (ts + 28800000) % 86400000; // 东8时区要调整8小时的毫秒数28800000
}
个人认为这是最简单的获取方法了。如果有任何谬误,欢迎各位大佬指正。