long now = System.currentTimeMillis() / 1000;
long time1 = (now + 8 * 3600) % 86400
long time2 = 86400 - (now + 8 * 3600) % 86400 ;
now是当前时间戳
time1 是今天凌晨到现在的秒数
time2是当前时间到明天凌晨秒数
逻辑:
现在时间戳 + 8小时 除以 一天秒数8600 取余 =今天凌晨到现在的秒数
一天秒数 减去 今天凌晨到现在的秒数 = 当前时间到明天凌晨秒数
计算time1时为何要加上8个小时,是因为:
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数
咱们所用的时间戳都是 格林威治的时间戳,加上8小时才是北京时间1970年1月1日0点到现在的秒数,编程时所使用的封装方法:时间戳转日期,都是自动获取当前时区加上/减去得到的日期