直接上代码
ZoneId z = ZoneId.systemDefault();//获取时区
ZonedDateTime dt = ZonedDateTime.now(z);//获取当前时间
long start = dt.toLocalDate().atStartOfDay(z).toEpochSecond()*1000;//获取当天的起始时间戳
long end=start+(23L*3600+1L*3599)*1000;//获取当天的结束时间戳
上面代码所得到的是当前日期的开始时间和结束时间,(23L3600+1L3599)*1000是因为想要的时间为59分59秒,所以在最后的一个小时里面没有3600秒;
Date dateNow=new Date();
Date dateBefore=new Date();
//得到目前的日期
Calendar cal=Calendar.getInstance();
cal.setTime(dateNow);
cal.add(Calendar.DAY_OF_MONTH, -1);
dateBefore=cal.getTime();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String time1=sdf.format(dateBefore)+" 00:00:00";
Date d1=sdf.parse(time1);
long startTime=d1.getTime();
long endTime=startTime+86399*1000;
因为没有找到使用java8怎么获取前一天的时间戳,所以就用其他的方法获取一下,先得到当前日期-1,然后格式化时间,拼接上开始时间在获取时间戳,结束时间戳就是开始加上86399*1000