Change to using a timer to invalidate the date rather than calling nanoTime each request