Рассчитать час из System.nanoTime() в Java

На gemfire у меня есть один регион ABC, и в этом регионе есть столбец / поле типа long. В этом поле я устанавливаю значение как System.nanoTime(), Я хочу получить все записи из этого региона, которые старше на 24 часа. Как я могу это сделать?

В настоящее время я пытаюсь сделать запрос, как показано ниже, но он не работает.

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

Любое предложение помощи должно быть оценено.

1 ответ

ПРИМЕЧАНИЕ. System.nanoTime() сбрасывается всякий раз, когда ваш компьютер перезагружается, поэтому его нельзя хранить в базе данных. Это также означает, что время является локальным для каждой машины.

LocalDateTime.now() настенные часы с нано вторым разрешением, которые не сбрасываются при перезагрузке и, скорее всего, будут работать на разных компьютерах.


Тем не менее, вы можете изменить это и рассчитать

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

search for ... where regionTimestamp > aDayAgo
Другие вопросы по тегам