2016-03-31 24 views
-1

JavaScript DateをJava 8のタイムゾーンでタイムゾーンに変換する簡単な方法はありますか?タイムゾーンでJavaScript日付をJava日付時刻に変換するにはどうすればよいですか?

私は、フロントエンドはJavaScriptで書かれ、バックエンドはJavaで書かれた2つの部分からなるWebアプリケーションを持っています。ユーザーはUIの日時を選択できる必要があり、その値はバックエンドによって消費される必要があります。この値をJavaの日時に変換する最も簡単な方法は何ですか?

+3

質問に多くの説明を付けると便利です。おそらくあなたはあなたがそれに答えるつもりであることを知っていましたが、それは誰でも答えようとしていればもっと詳細が必要です。答えはで始まる。そうすれば、それは将来の読者にとってより役立つでしょう。 –

+1

が「投票して自分の質問に答えるだけではなく、明示的に奨励されている」という理由で投票されました。参照:[あなた自身の質問に答えることができます。](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/)と[Can私は自分の質問に答える?](http://stackoverflow.com/help/self-answer) – Roberto

+0

"JavaScript Date"とはどういう意味ですか? [ECMAScript 2017の仕様](http://www.ecma-international.org/ecma-262/8.0/index.html#sec-date-objects)では、日付時刻の文字列形式は、 ISO 8601規格: 'YYYY-MM-DDTHH:mm:ss.sssZ'。 –

答えて

0

あなたが例えば、協定世界時(UTC)とZonedDateTimeを使用して時刻を変換することができます:

Thu, 31 Mar 2016 06:49:02 GMT 
Thu, 31 Mar 2016 06:49:02 -0830 

JavaScriptが

var d = new Date(); 
var n = d.toUTCString(); 

toUTCString()方法は、文字列にDateオブジェクトに変換に従って普遍的な時代へ

のJava 8

ZonedDateTime zdt = ZonedDateTime.parse(text, DateTimeFormatter.RFC_1123_DATE_TIME); 

テキストは
RFC_1123_DATE_TIMEが事前定義されたRFCであるISO-8601カレンダシステムにおけるタイムゾーンと日時UTC日時列
ZonedDateTimeあります-1123日付時刻フォーマッタ。

+5

あなたは1分以内にあなたの自己に答えているようです –

+2

他の人たちが返信するのを待ってください、彼らはより良い方法を思い付くかもしれません。答えると、人々は答えることを避ける傾向があります。 – Panther

+5

@Panther:自己解答には何も問題ありません。 OPが問題に直面して解決した場合、質問をして即座に答えるのはIMOです。 https://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions確かに、質問自体はもっとはっきりと書くことができました。 –

0

私は最近、ブラウザを実行しているJavaサーバのバックエンドとJavascriptを使用してWebアプリケーションでこれをしなければなりませんでした。問題は、サーバーに送信されるリクエストを作成したJavascriptコードが自分のコードで閉じられていたため、Javascript Dateオブジェクトのインスタンスで特定のメソッドを呼び出してフォーマットを制御できなかったことです。したがってtoString()メソッドが暗黙的に呼び出されていた、得られた文字列は次のように見えた:

Mon Sep 28 1998 14:36:22 GMT-0700 (PDT)

クロム、FirefoxやSafariを使用して

specificationに食い込むこの方法はtoDateString(tv)tvは時間呼び出すことがわかりますDateインスタンスの値。

残念ながら、これが表示されてしまう方法を正確に決定するために実装味までのようだ:

戻り、現在のタイムゾーンの日付と時刻としてテレビを表し実装依存の文字列値便利な、人間が読める形式を使用します。

だから我々はすべてのブラウザが最新に.toString()が呼び出されたのと同じ方法でフォーマットすることを確認することはできませんが、私はいくつかのブラウザでテストし、地域の設定を変更したとき逸話私は、言語やカレンダー、同じフォーマットを観察しました(エチオピア人のような)興味深いものに変わってしまい、私はまだ同じ日付形式で終わった。それは一貫性のあることを前提に作業する

、我々は今、次を使用してJavaで日付を解析することができます

ZonedDateTime zdt = DateTimeFormatter.ofPattern("EEE MMM d yyyy HH:mm:ss 'GMT'Z (z)")

クライアントから送信されたタイムゾーン情報を保持しています。

とにかく、これは他の人には便利だと思いますが、Javascript Date toString()メソッドの(一貫性の)整合性に関して誰かが任意のドキュメントを指し示すことができれば幸いです。

関連する問題