接下来 2 小时使用日历 object/Java-Android

Next 2 hours using Calendar object/Java-Android

我想捕获用户在接下来的 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

有什么想法吗?谢谢

看看你在做什么:

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 点。 (虽然你没有清除毫秒部分,所以它会是"some time in the first second after midnight"等)