我无法理解获取时间戳、减去它们以及在未来的计算中分配和使用差异。我在 Android Studio 中使用 Java。
当我使用 SimpleDateFormat
和 Calendar
时,我能够以 HH:mm:ss
格式获取当前时间,但我不知道如何将其中两个时间戳相减并将差值转换为秒。我的最终目标是获取差异,将其转换为秒,将其分配给 int,然后将该值与其他预定值进行比较。这是 Android Studio 中的一个项目,因此我已经设置了用于获取时间戳的按钮。
示例:
- 获取当前时间戳,例如 16:50:32
- 获取不久的将来的第二个时间戳,例如 16:53:29(大约三分钟后)
- 减去这两个时间戳并以秒为单位存储该值,因此最终值将是 177(秒)
- 将值 177 放在变量中,以便我可以用它做更多事情。
我可以使用以下代码来获取时间戳
Calendar calendar = Calendar.getInstance();
SimpleDateFormat startTime = new SimpleDateFormat("HH:mm:ss");
timeTest = startTime.format(calendar.getTime());
SimpleDateFormat endTime = new SimpleDateFormat("HH:mm:ss");
timeTest2 = endTime.format(calendar.getTime());
但是在获得两个时间戳后,我不知道如何减去它们,将它们转换为秒并将它们存储在 int 值中。
最佳答案
您使用的是 Java 8 吗?
如果是这样,您可以转换为 Instant
并获取它们之间的Duration
:
Calendar cal = ...
Calendar cal2 = ...
Instant instantOne = cal.toInstant();
Instant instanceTwo = cal2.toInstant();
Duration between = Duration.between(instantOne, instanceTwo);
long seconds = between.getSeconds();
我认为您使用 Calendar
是有原因的(它在您无法控制的情况下传递给您?)...如果没有,那么您可以使用 Instant.now ()
从一开始就删除了 Java 8 之前的日期/时间类
关于java - 尝试获取两个时间戳,减去它们,将差值转换为秒并存储在 int 变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60424058/