我想捕捉用户在接下来的2小时内所做的步骤。
这就是我所说的。
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Log.d("Calendar",calendar.getTime().toString());
long endTime = calendar.getTimeInMillis();
calendar.add(Calendar.HOUR_OF_DAY,2);
long startTime = calendar.getTimeInMillis();
然而,该应用程序崩溃,给我以下例外。
java.lang.IllegalStateException: Invalid end time: 1432119600355
有什么想法吗?感谢。
答案 0 :(得分:4)
看看你在做什么:
long endTime = calendar.getTimeInMillis();
calendar.add(Calendar.HOUR_OF_DAY,2);
long startTime = calendar.getTimeInMillis();
因此开始时间是结束时间后两小时。这不会有效。我怀疑你只需要更改顺序:
long startTime = calendar.getTimeInMillis();
calendar.add(Calendar.HOUR_OF_DAY,2);
long endTime = calendar.getTimeInMillis();
现在将有一个午夜的开始时间和凌晨2点的结束时间。 (虽然你还没有清除毫秒部分,所以它会“在午夜后的第一秒”等等。)