I'm trying to compare time in milliseconds in Android with the system time.
startDate
and endDate
are all long
and represent timestamps in milliseconds.
if (startDate <= 开发者_运维问答System.currentTimeMillis() >= endDate)
This is the error I'm getting:
The operator >= is undefined for the argument type(s) boolean, long
You need to change it to
if (startDate <= System.currentTimeMillis() && System.currentTimeMillis() >= endDate)
The reason for this is because the statements get evaluated like so:
startDate <= System.currentTimeMillis();
<result of above> >= endDate;
or equivalently
(startDate <= System.currentTimeMillis()) <= endDate
The <=
operator results in a boolean value and then what you have is
boolean <= long
which you can't do. Unfortunately in Java, you can't chain operations together like that because they are evaluated one at a time and then the result of the first is used as input to the second, and so on.
精彩评论