This week's book giveaway is in the Other Open Source APIs forum. We're giving away four copies of Storm Applied and have Sean Allen, Peter Pathirana & Matthew Jankowski on-line! See this thread for details.
I am assuming that these tests are started with shellscripts? If so, you can add a call to the "date" command, prior to the call to start the JVM, to set the date. To set it back, you can use the "rdate" command to a host with a time server.
As with most things in computing, this is probably easy to solve with another layer of indirection.
Everywhere in your code that you now say, e.g., "new Date()" or System.currentTimeMillis(), or however you determine what time it is, replace those with something like "TimeFactory.get().newDate()" or "TimeFactory.get().currentTimeMillis()". TimeFactory.get() returns an object that has methods like newDate(), currentTimeMillis(), or whatever else you need, declared in an interface "ITime" or something.
get() looks like (This leaves out exception handling and also ignores that the System property might be null; you need to deal with those issues
Now, you can change the ITime object -- and therefore how the whole app tells time -- with a system property. You can implement one that reports a fixed time, or a delayed time, or an accelerated time, or whatever you need.