0

私のクライアント JavaScript アプリとサーバー アプリは、異なる国で実行されます。イベントを同期する必要があります。つまり、クライアント アプリは、次のようなローカルの日時を表す URL 文字列を送信します。

date = new Date() # Mon Jul 22 2013 16:28:34 GMT+0200 (CEST)

サーバー ( l​​inode ) 側では、Java で書かれた小さなアプリケーションを実行しています。この文字列をローカル サーバー側マシンの日時に変換し、Hibernate 経由で rdbms に保存して、cron または時計のようなアプリがテーブルからこの日付を読み取り、新しいイベントをアクティブにしてリモートに同期できるようにする必要があります。これは、クライアントが指定した日付に正確に発生する必要があります。これを達成するための最良の方法はどれですか?

4

1 に答える 1

0

両方の時刻とタイム ゾーンが正しい場合、タイム ゾーンに関係なく、ミリ秒単位の日付はサーバーとクライアントの両方で同じになります。

java.sql.Date(long)クライアントからミリ秒単位で日付を送信し、コンストラクターのサーバー側で受け入れます。
タグでjavascriptについて言及しました。したがって、日付はJavaScriptを使用して送信new Date();でき、サーバーは次の方法で受け入れることができます

new java.sql.Date(client_date);

ミリ秒単位で、クライアント時間は適切なサーバー時間に変換されます。クライアント時間が適切に設定されていない場合、そのために、次のようなミリ秒単位の時差を使用できます-

long time_difference= new Date()-new Date(client_date);
long server_time_of_execution=new Date(Client_date_to_execute).getTime()+time_difference;
于 2013-07-23T13:16:00.453 に答える