この日付/時刻が含まれていると予想されるタイムゾーンがありません。ローカル コンピューターでは、おそらくあなたが期待しているものです。いずれにせよ、それはあなたのコンピューターであり、現在いる場所の時間を示している可能性が高いです。ただし、サーバーは UTC またはその他のタイムゾーンにある可能性があり、日付をそのタイムゾーンに関連するものとして解釈します。これを解析してローカル タイムゾーンに変換すると、タイムゾーンに関してローカル コンピューターとサーバーの「距離」に応じて、最大 24 時間オフになります。
あなたのコメントに続いて:
Java 型の Date には常にタイムゾーンがありません。タイムゾーン処理を行うには、Calendar を通過する必要があります。これは、日付の保存中または表示中に発生する可能性があるものです。最初に、問題がどこにあるかを見つける必要があります。つまり、解析中、保存中 (実際にデータベースに何が残るか)、またはデータベースに書き込まれた値の表示中です。また、後で値を表示するときに再生成するために、目的のタイムゾーンをデータベースに明示的に保存する必要がある場合もあります。
テストする手順:
- ローカル コンピューターのタイムゾーンは? サーバーのタイムゾーンは?DBサーバーの?
- データベースには何が保存されますか? タイムゾーンが含まれていますか?
- データベースから何を読み取りますか?
- ユーザーには何が表示されますか? 行うフォーマットによっては、タイムゾーンの計算も行う場合があります。
さまざまなステップのどれに修正が必要かがわかるとすぐに、さらに詳しく調べる必要があります。あなたの問題がどのステップにあるのか、ここからはわかりません。したがって、コードサンプルはありません...(また、グルーヴィーな筋肉を長い間行使していません)申し訳ありません。
Web アプリケーションを使用している場合は、ユーザーが実際に期待しているタイムゾーンを確認してください。単一のタイムゾーンのみを処理する必要がある場合 (そして、別のタイムゾーンが存在しないことをさらに確信している場合) は、処理したいタイムゾーンにサーバーを設定し、すべてのユーザーがいるようにするだけです。この仮定はすぐに崩れます。後で、しかし今のところ、あなたは設定されています:(