Java 运行jre应用程序如何使用自定义提供的日期和时间

Java 运行jre应用程序如何使用自定义提供的日期和时间,java,apache,tomcat,jvm,jvm-hotspot,Java,Apache,Tomcat,Jvm,Jvm Hotspot,我的应用程序取决于时间,因此有时我必须提前到将来的日期进行一些应用程序测试 我有一个解决方案。 更改系统日期和时间并重新启动服务器,但我不想这样做,这是一项非常耗时的任务,将来更改日期也会影响我系统的365 office和tortoise HG以及其他应用程序 所以基本上我想要,我改变服务器文件中的日期和时间,或者以某种方式告诉JVM指向我的假时钟,而不是实际的OS时钟 我知道我们有Mokito来模拟数据,但是我的应用程序已经20年没有TTD了 我基本上想更改Javajre所指向的日期和时间

我的应用程序取决于时间,因此有时我必须提前到将来的日期进行一些应用程序测试

我有一个解决方案。

  • 更改系统日期和时间并重新启动服务器,但我不想这样做,这是一项非常耗时的任务,将来更改日期也会影响我系统的365 office和tortoise HG以及其他应用程序
所以基本上我想要,我改变服务器文件中的日期和时间,或者以某种方式告诉JVM指向我的假时钟,而不是实际的OS时钟

我知道我们有
Mokito
来模拟数据,但是我的应用程序已经20年没有TTD了

我基本上想更改
Java
jre
所指向的日期和时间

或者我们是否有办法或
API
来修改
JRE
time
date

我希望你们能理解我的问题,如果还有疑问,请随时提问


感谢您的帮助:)

这似乎需要做很多工作,只是为了测试。你不能创建更多的单元测试吗,因为一切都取决于你选择的日期?对于一个遗留应用程序也有同样的问题-我们创建了一个DateTimeUtil类,其中处理了所有应用程序的日期/时间操作。该类有一个
长偏移量
(未来日期为正值,过去日期为负值),其中所有相关操作都将包括偏移量。以及一个简单的用户界面,供QA人员根据需要进行更改。当应用程序分布在多个服务器上时,这种情况会变得非常迅速。也许更新的java.time包可以帮助简化这一过程。