1

我在工作中遇到了这种情况,我需要使用 JAVA 运行我的 java 应用程序,让我相信日期/时间在未来的某个地方。团队一直在更改系统时间并重新启动 WebSphere Application Sever 以反映所需的日期/时间。但是,我觉得这是进行“时间旅行”的一种粗鲁方式。我四处搜索,发现有一种方法可以在启动时设置服务器的时区,方法是在 JVM 参数中使用“Duser.timezone=GMT”。除了更改我的系统日期/时间之外,有没有办法让我的工作站上的 Java 指向自定义日期/时间?

4

2 回答 2

1

The best practise would be not messing up with the system clock. You should do some refactoring of your code instead. For example to make your method use Clock.getInstance() (System.currentTimeMillis() -> Clock.getInstance().currentTimeMillis() / myClockInstance.currentTimeMillis()).

于 2016-04-28T23:53:36.910 回答
0

实际上,您可以尝试一些混乱的方法:

1)只需编写自己的 java.util.Date 类,并希望它在 JVM 之前被加载。

2) 调整 ClassLoader 或编写一个自定义的,尝试对 java.util.Date 进行一些特别的照顾

3)您也可以考虑使用不同的日历。

4)做Mateusz Stefaniak指出的

5) 操作原始的Java jars

甚至可能还有更多我没想到的方式...

于 2016-04-29T00:01:22.577 回答