Рассчитать час из 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