Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.MILLISECOND, 0);
System.out.println("1111111111111"+cal.getTimeInMillis());
System.out.println("2222222222222"+System.currentTimeMillis());
System.out.println("3333333333333"+(cal.getTimeInMillis() - System.currentTimeMillis()));
之前这样用, 发现不能识别0点是哪天, 比如现在时间是00:12
那么会识别为今天的00:00 时间差就是负的 , 怎么得到明天凌晨00:00的毫秒差
你的凌晨不是明天凌晨,而是当前凌晨,你打印下看看:System.out.println(cal.getTime());
如果要设置明天凌晨,应该修改代码为:
cal.set(Calendar.HOUR, 24);
你这里设置的都是今天的时间,没有改日期的。如果我没有理解错的话,你说的明天凌晨12点就是0点吧?你需要增加一句
cal.add(Calendar.DAY_OF_YEAR,1);
这句话的意思就是将日期往后推了一天了,在设置时分秒毫秒为0就可以了。