This is a trick thing with any automated unit testing -- even Junit testing.
The answer is you must pass in the dates. Set up wrappers to "read current date and add it to the parameter list" for production, but have your unit tests call the modules that receive the date.
That is the only way to keep your tests from getting stale in any language or environment.