日付/時刻が将来のどこかであると信じるように、JAVA を使用して Java アプリケーションを実行する必要があるという私の仕事で、このシナリオがあります。チームはこれを行っており、システム時刻を変更し、WebSphere Application Sever を再起動して、必要な日付/時刻を反映しています。しかし、これはこの「タイムトラベル」を行うための粗雑な方法だと感じました。私が調べたところ、JVM引数で「Duser.timezone = GMT」を使用して、起動時にサーバーのTimeZoneを設定する方法があることがわかりました。システムの日付/時刻を変更する以外に、ワークステーションで Java をカスタムの日付/時刻を指すようにする方法はありますか?
2 に答える
1
ベスト プラクティスは、システム クロックを台無しにしないことです。代わりに、コードのリファクタリングを行う必要があります。たとえば、メソッドを使用するには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 jar を操作する
私がatmについて考えなかった方法がさらにあるかもしれません...
于 2016-04-29T00:01:22.577 に答える