2016-10-03 14 views
0

私は現在'05:15:50'として'10 1 2016'としてvar dateNowvar timeNowを持っているので、var dateTimeNow = Date(dateNow + timeNow + ' UTC');Javascript:現地時間をGMTに変換できますか?新しい日付(localTime + 'GMT')?

のようにUTCに変換することができたが、今でGMTに変換したいので、それだけで' GMT'' UTC'を変えるのと同じくらい簡単ですか!だから、var dateTimeNow = Date(dateNow + timeNow + ' GMT');のように?

+0

試してみてください...エラーが表示されたり、問題が発生した場合に戻ってください –

+0

UTC = GMT + 0時間ではありませんか? – Gabriel

+0

ええ、私は英国にいて、時代は同じですが、別のタイムゾーンに変換したいと思っていたかもしれません –

答えて

0

"10 1 2016"(2016年1月10日と思われる)の日付と "05:15:50"のような時刻がある場合は、その時刻の日付を「2016-01-10T15:15:50Z」または「2016-01-10T15:15:50 + 0000」のISO 8601フォーマット文字列としてのゼロオフセット。

現代の実装では、ISO 8601拡張フォーマット文字列を正しく解析する必要がありますが、一般的に実装の違いによりDateコンストラクタ(またはDate.parse、解析は同等です)を使用して文字列を解析することは好ましくありません。単一の書式を持っている場合は、2行で解析することができます。あるいは、パーサとフォーマッタを持つ多くのDateライブラリのうちの1つを使用し、パーサーに解析する文字列の形式を常に与えてください。

現地時間をUTCに変換する場合、現地時間のタイムゾーンオフセットを知る必要があります。それ以外の場合は、調整するためのデータがありません。

var d = new Date(2016,0,10,5,15,50); 
 
console.log('Local: ' + d.toLocaleString() + 
 
      '\nUTC: ' + d.toISOString());

がUTCに5時15分50秒で2016年1月10日のようなローカルな日付を「変換」するために簡単です(ここで、「ローカル」は、ホストシステムのタイムゾーンに設定されているものです)

のtoLocaleStringが完全に実装依存であることに注意してくださいは、多くの場合、ブラウザ、システムの設定を無視し、異なる実装では異なる結果を生じさせます。

これにより、ホストは現在のシステムタイムゾーン設定を考慮し、日付を作成するときにそれらを適用することができます。 ECMAScriptのDateオブジェクトには、UTCに基づいた時間値があるため、本質的にUTCです。

+0

申し訳ありませんが、実際には1016年10月1日は2016年です。また、UTCはGMTと同じですか? –

+0

[* UTC *](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)は時間基準で、[* GMT *](https://en.wikipedia.org/wiki/Greenwich_Mean_Time)はタイムゾーンです。すべての実用的な目的のために、それらは同じ(ゼロ)オフセットですが、UTCは国際標準であるため、GMTが明示的に要求される場合を除いて使用する必要があります。例えば。 GMTタイムゾーンにいる人は、適用時に夏時間を観測することが期待できますが、UTCでは適用されません。タイムゾーン名または略語の標準はありませんが(ZはUTCに使用されます)、実際のオフセットはISO 8601に準拠した日付と時刻文字列に使用されます。 – RobG

+0

UTCはより広く適用可能であり、使用することが推奨されていますか? –

関連する問題