Я как бы сомневаюсь, что есть один универсальный и надежный способ сделать это.
Насколько мне известно, рекомендуемый способ - это предположить, что компьютер (сервер) использует время UT C и вы вообще не полагаетесь на часовой пояс, в котором находится компьютер. Вы можете сохранить настройки часового пояса, которые так или иначе важны для пользователей, и тогда вы сможете изменить это легко, изменив настройки, которые передаются. (java.time
делает различие между Local
и Zoned
единицами не зря).
Если вы хотите динамически изменять время, которое видит ваша программа, тогда вам, вероятно, придется использовать что-то вроде libfaktime для перехвата всех вызовов системных часов. Вы могли бы, вероятно, смешать это с Docker, чтобы упростить запуск одного теста с другим временем, а другой с другим временем.
Думаю, во многих случаях может быть какая-то уловка это позволит вам избежать всего этого ... но если все, что мы знаем, это то, что вы хотите запустить 2 теста в разных часовых поясах без каких-либо знаний о библиотеках, операционной системе и т. д. c, тогда трудно рекомендовать что-то лучшее.