项目中业务用到了获取当天00:00:00和23:59:59时间戳,网上查了下好多实现都不满意,而且都抄来抄去的,还是自己研究写一个。可能还有更好的实现方式,以后再补充。
public class TimeUtil {
/**
* 获取当天00:00:00的时间戳
*
* @return 时间戳
*/
public static Long getStartTime() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
return calendar.getTimeInMillis();
}
/**
* 获取当天23:59:59的时间戳
*
* @return 时间戳
*/
public static Long getEndTime() {
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.set(Calendar.HOUR_OF_DAY, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
return calendar.getTimeInMillis();
}
public static void main(String[] args) {
SimpleDateFormat timeFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(getStartTime()+" ~ "+getEndTime());
System.out.println("格式化后 :"+timeFormat.format(getStartTime())+" ~ "+timeFormat.format(getEndTime()));
}
// OUTPUT:
// 1598544000813 ~ 1598630399813
// 格式化后 :2020-08-28 00:00:00 ~ 2020-08-28 23:59:59
}