Я не совсем уверен, хотите ли вы этого, но с помощью библиотеки Joda-time вы можете полностью остановить время. Поэтому вызовы нового Date () или нового DateTime () в пределах Joda-time будут постоянно возвращаться в одно и то же время.
Итак, вы могли бы в одном потоке «остановить время» с помощью этого вызова:
DateTimeUtils.setCurrentMillisFixed(System.currentTimeMillis());
Тогда ваша Нить может спать, скажем, 5000 мс, а затем позвонить:
// advance time by one second
DateTimeUtils.setCurrentMillisFixed(System.currentTimeMillis() + 1000);
Таким образом, при условии, что ваше приложение делает все, что оно делает, основываясь на времени внутри системы, оно будет «замедлять» время, устанавливая время на одну секунду каждые 5 секунд.
Но, как я уже сказал ... я не уверен, что это сработает в вашей среде.