рассчитать час из System.nanoTime () в Java - PullRequest
0 голосов
/ 17 декабря 2018

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

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

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

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

1 Ответ

0 голосов
/ 17 декабря 2018

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

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


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

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

search for ... where regionTimestamp > aDayAgo
...