以下
package com.tusmind.dsv.core.util;
public class DateTimeUtil {
public static final long ONE_DAY_MILLIS = 24L*3600*1000;
public static final long timeZone = 8L*3600*1000;
public static long getDayStartTime(long timeStamp) {
return timeStamp - (timeStamp+timeZone)%(ONE_DAY_MILLIS);
}
public static long getDayEndTime(long timeStamp) {
return getDayStartTime(timeStamp)+ONE_DAY_MILLIS-1;
}
public static long getTodayStartTime() {
return getDayStartTime(System.currentTimeMillis());
}
public static long getTodayEndTime() {
return getDayEndTime(System.currentTimeMillis());
}
public static void main(String[] args) {
System.out.println(System.currentTimeMillis());
System.out.println(getDayStartTime(1520813975000L));
System.out.println(getDayEndTime(System.currentTimeMillis()));
}
// 1520846449466
// 1520784000000
// 1520870399999
// 1520810375000 7:19
// 1520813975000 8:19
}
核心是:
getDayStartTime(long timeStamp)
推导:
(timeStamp +timeZone)- (timeStamp+timeZone)%(ONE_DAY_MILLIS)-timeZone