Android 比较时间和毫秒

发布于 2024-10-29 03:11:50 字数 305 浏览 2 评论 0原文

我正在尝试将 Android 中的时间(以毫秒为单位)与系统时间进行比较。 startDateendDate 都是 long 并表示以毫秒为单位的时间戳。

if (startDate <= System.currentTimeMillis()  >= endDate)

这是我收到的错误:

对于参数类型 boolean, long,运算符 >= 未定义

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟若柳尘 2024-11-05 03:11:50

您需要将其更改为

if (startDate <= System.currentTimeMillis() && System.currentTimeMillis() >= endDate)

这样做的原因是因为语句的计算方式如下:

startDate <= System.currentTimeMillis();
<result of above> >= endDate;

或等效地

(startDate <= System.currentTimeMillis()) <= endDate

<= 运算符会生成一个布尔值,然后您所拥有的是

boolean <= long

您无法执行的 操作。不幸的是,在 Java 中,您不能像这样将操作链接在一起,因为它们一次评估一个,然后第一个结果用作第二个操作的输入,依此类推。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文