使用新的Java 8 DateTime API(java.time)我们如何检查“最后”捕获时间是否比配置的秒数早?Java 8日期如何检查时间是否比X秒老?
例...
最后拍摄时间:13:00:00 当前时间时间:13点零零分31秒
if (last captured time is older then 30 seconds) then
do something
使用新的Java 8 DateTime API(java.time)我们如何检查“最后”捕获时间是否比配置的秒数早?Java 8日期如何检查时间是否比X秒老?
例...
最后拍摄时间:13:00:00 当前时间时间:13点零零分31秒
if (last captured time is older then 30 seconds) then
do something
Instant
类表示UTC中时间轴上的一个时刻,分辨率为纳秒。
Instant then = … ;
Instant now = Instant.now();
甲Duration
表示时间以秒和nanoseconds术语的跨度。
Duration d = Duration.between(then , now);
提取整秒的数量。
long secondsElapsed = d.getSeconds() ;
比较你的限制。使用TimeUnit
枚举来转换而不是硬编码一个“魔术”数字。例如,将五分钟转换为几秒钟。
long limit = TimeUnit.MINUTES.toSeconds(5);
比较。
if(secondsElapsed > limit) { … }
时间是......
Duration duration = Duration.between(LocalDateTime.now(), LocalDateTime.now().plusSeconds(xx));
System.out.println(duration.getSeconds());
“本地...”类故意丢失所有时区和偏离UTC时间的信息。所以这是在这里使用的错误类。 **在夏令时(DST)切换或其他此类异常情况下执行期间,此类代码失败**。 –
在这种情况下,我会接受你的...... – user432024
你是怎么在['java.time'包]找到(http://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html)时你做了你的研究? –
是的,我知道现在看着它。我在想我可以使用持续时间并从中进行计算? – user432024
@ user432024我在想你应该至少试试。 – DejaVuSansMono