2012-01-16 3 views
6

タイムゾーンオフセットを含むISO8601の日付があります(下記参照)。このオブジェクトからDateオブジェクトを作成すると、日付オブジェクトは現在のタイムゾーン(現在はGMT)に変換され、タイムゾーンオフセットは0になります。タイムゾーンオフセットを保持するDate()コンストラクタを取得する方法はありますか?javascript date - タイムゾーンオフセットを保存する

var date = new Date("2012-01-17T12:55:00.000+01:00"); 
    console.log(date.toString()); 

私が手出力は次のようになります。

"Tue Jan 17 2012 11:55:00 GMT+0000 (GMT)" 

私が欲しいの出力は次のようになります。ビルトインDate object

"Tue Jan 17 2012 12:55:00" 
+0

をGoogle Chromeであなたの例を貼り付けコピー&ことで、私は「あなたが望む出力を得ますTue Jan 17 2012 12:55:00 GMT + 0100(パリ、マドリード) '、どのブラウザをお使いですか? –

+0

@ArnaudF。あなたのローカルタイムゾーンがGMT +1であることが強く疑われます。ここフォックスワースでは、クロムのテキサス州で、私は 'Tue Jan 17 2012 05:55:00 GMT-0600(中央標準時)'を取得します。 – DMKing

答えて

8

ない、彼らは唯一のの認識しているとして、ローカル(ユーザーのブラウザおよび/またはOS設定によって定義される)およびUTC。これは、クラスに含まれる多くのクローンメソッド(例:getHours/getUTCHours)から確認できます。

getTimezoneOffsetはあなたが本当に持っている唯一のタイムゾーンの情報ですが、それは同様に地元だと、おそらく唯一のあなたは再び+0(または私の場合は6)が得られます:

var date = new Date("2012-01-17T12:55:00.000+01:00"); 
console.log(date.getTimezoneOffset()/60.0); 

あなたは(timezone-jsを試すことができますまたはone of its forks)、しかし、あなたはオフセットOlson timezone nameだけではなく、GMT/UTCを知っておく必要があります:

var date = new new timezoneJS.Date('2012-01-17T12:55:00.000+01:00', 'Europe/Brussels'); 
alert(date.getTimezoneOffset()/60.0); // +1