2017-05-17 14 views
0

特定のタイムゾーンの入力日付が文字列にあります。たとえば:日付をシフトさせずに日付をローカルタイムゾーンに変換

Sat May 20 2017 17:00:00 GMT-0300 (-03)

私は時間を変換せずに、私のローカルタイムゾーンにこの日付のタイムゾーンを変更したいです。入力した日付が正しいタイムゾーンにあるかのように。

Sat May 20 2017 17:00:00 GMT+0200 (CEST)

私は、現時点で遊んこれが見つかりました:

const date = moment(moment.utc('Sat May 20 2017 17:00:00 GMT-0300 (-03)').format('LLL'))

が、それはそれを行うための最も簡単な方法ですが?私は瞬間オブジェクトのコピーが気に入らないが、 "シングルショット"でそれを行う方法は見つけられない。

答えて

3

あなたの入力をローカル時間で解析するには、単にmoment(String, String)機能を使用します。 docsとは:

デフォルトでは、瞬間は解析され、現地時間で表示されます。ここで

ライブのサンプル:

var input = 'Sat May 20 2017 17:00:00 GMT-0300 (-03)'; 
 
var m = moment(input, 'ddd MMM DD YYYY HH:mm:ss'); 
 
console.log(m.format());
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

+1

感謝。ここで重要な点は、入力形式を指定してタイムゾーン解析を削除することでした。それについては決して考えなかった。 – Kerumen

関連する問題