2017-10-27 6 views
0

私は、ユーザーが日付を入力できるアプリケーションを持っています。私は、問題は、私はフロントエンドで日付を選択し、バックエンドは、Javaアプリをアプリとして、バックエンドに送信したときにということであるmydatepickerのv2.0.31angular2の日付を使って作業する

を使用することを決めたいくつかの研究の後

)が異なる中でありますタイムゾーンは、通常のユーザーは、それは前日の日付を変更します。

私は今、角度アプリの日付をyyyy-mm-ddという形式の文字列に変換してからバックエンドに送信しますが、その結果を(バックエンドの後に)私はARTとESTのバックエンドにいるので...タイムゾーンを想定せずに日付を送信できるオプションはありますか?

答えて

0

IMHO、クライアントとサーバーの間の日付を扱う賢い方法は、明示的にタイムゾーンを指定することです。これにはISO-8601の時間フォーマットが組み込まれています。

また、IMHOは、UTCで日付/時刻を指定するのが常識です。

これを実行すると、時間帯は「Zulu」時間(UTCの軍事用語)として指定されます。"2017-11-05T20:41:06+00:00"、この投稿のおおよその時刻は私にとっては3:41 PMです2017年11月5日、ESTはUTCより5時間遅れています。

JavaScript(またはTypescript)では、DateオブジェクトにJSON.stringify()と同様にISO-8601準拠の日付文字列を生成するtoISOString()メソッドがあることに注意してください。したがって、AngularのオブジェクトをAngularのHTTPClient経由でバックエンドに送信すると、そのオブジェクトの日付はISO-8601形式で自動的に送信されます。

最初に文字列に変換する場合は、変換しないでください。それらをDatesのままにし、HttpClient経由でオブジェクトをバックエンドに送信するときにJSON.stringify()を変換させます。