接下来2个小时使用Calendar对象/ Java-Android

时间:2015-05-20 12:29:39

标签: java android calendar

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

有什么想法吗?感谢。

1 个答案:

答案 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点的结束时间。 (虽然你还没有清除毫秒部分,所以它会“在午夜后的第一秒”等等。)