Из вашего дополнительного объяснения в комментариях (может быть, вы добавите их в свой вопрос?) Мои мысли:
Возможно, вы уже решили 1 и 2, но они относятся к проблеме, если нетвопрос.
1) Это веб-приложение, поэтому вам нужно только позаботиться о часах вашего сервера.Не доверяйте никаким часам, которые контролируются клиентом.
2) Похоже, вам нужно только прошедшее время, а не абсолютное время.Поэтому, почему бы не отслеживать время начала и окончания запроса к серверу, а затем добавить прошедшее время сервера обратно к оставшемуся «банку времени» (или какому-то другому ограничению)?
3) Что касается тестирования, вам вообще не нужно заботиться о каких-либо реальных «часах».Как предлагает Гилберт Ле Блан, напишите обертку вокруг системных вызовов, которую вы затем сможете использовать для возврата фиктивных тестовых данных.Поэтому, если у вас есть метод getTime()
, который возвращает текущее системное время, вы можете заключить его в другой метод или перегрузить его параметром, который возвращает произвольное смещение.