java - 从java中的System.nanoTime()计算小时

标签 java gemfire

在 gemfire 上,我有一个区域 ABC,并且在该区域内有一个 long 类型的列/字段。 在此字段中,我将值设置为 System.nanoTime()。 我想获取该区域 24 小时前的所有记录。 我怎样才能做到这一点?

目前我正在尝试进行如下查询,但它不起作用。

select  regionTimestamp from /ABCRegion where (((((regionTimestamp-currentTimeStamp)/ 1000000000))/3600)>24)

任何帮助建议都必须受到赞赏。

最佳答案

注意:每当计算机重新启动时,System.nanoTime() 都会重置,因此将其存储在数据库中不是一个好的选择。这也意味着每台机器的时间都是本地的。

LocalDateTime.now() 是纳秒分辨率的挂钟,重启后不会重置,并且更有可能跨机器工作。

<小时/>

无论如何,您可以重新排列并计算

long now = ...
long aDayAgo = now - 86_400_000_000_000L; // 24 hours.

search for ... where regionTimestamp > aDayAgo

关于java - 从java中的System.nanoTime()计算小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53811479/

相关文章:

java - 即使我有监听器和@EvenHandler,为什么事件没有被激活?

java - GemFire 条目的生存时间未使用 spring-cache 设置

java - 如何在 genfire 区域存储时间戳

Java线程自发唤醒

java - Android 谷歌地图来自像浏览器一样的 fragment

Java 异常没有被捕获?

java - gemfire客户端获取池为空.gemfire9.0

tomcat - 基于 Spring 的 GemFire 客户端可以处理的并发请求数

java - 关键的 gemfire 负载测试

java - hibernate 事务 : Only Last item of list is saved into the table