1

ここに投稿する前に、この質問をグーグルで検索しました。私の質問に固有の解決策が見つからなかったので、ここに行きます。正しくない場合は、ご容赦ください。

Java、JSP、Tomcat、および Oracle 9i/10g を使用しています。

現地時間のデータが保存された既存のデータベースがあります。たとえば、テーブルが「予定」の場合、すべての予定日、作成日、および変更日 - データは「日付 dt = new java.util.Date();」で DB に格納されます。および SQL ステートメント「INSERT into Appointment (Scheduled Date、Created Date、Changed Date) の値 (?,?,?)」

Date dt = new java.util.Date();
...
String query ="INSERT into Appointment (Scheduled Date, Created Date, Changed Date) values (?,?,?)";
...
pstmt.setDate(1, users_browser_selected_date);
pstmt.setDate(2, dt);
pstmt.setDate(3, dt);
......

コードは説明のみを目的として提供されています。コード/論理エラーは無視してください...

この時点で、上記のコードを使用してデータが既に保存されています。現地時間を保存することを意味します。また、この時点でデータを変更することはできません。(ベスト プラクティスは、UTC 形式を使用してデータを保存することです。しかし、この時点でその変更を行うのは遅いです。)

現在、ユーザーは任意のタイム ゾーンで Web アプリケーションを使用できます。ユーザーがブラウザから時間に基づいてデータの検索操作を行う場合、データは正確で一貫している必要があります。

DBに触れずにこれを達成できる方法はありますか? ブラウザの検索フォームに日付を表​​示するには、どのような変更を加えることができますか? DBに対してJavaコードで検索クエリを実行すると、どのような変更を加えることができますか?

いくつかの手順を提供していただけると助かります。

どうもありがとう。

4

1 に答える 1

0

日付を UTC 形式でデータベースに保存し、ロケールに基づいて各クライアントのローカル タイム ゾーンに変換します。

于 2013-10-02T13:04:05.910 に答える