私の日付文字列の形式は次のようになります:_yyyy-MM-ddTHH:mm:ss-0Z00
_
例1:_2010-03-05T07:03:51-0800
_
例2:_2010-07-01T20:23:00-0700
_
これらの日付文字列を使用して日付オブジェクトを作成する必要があります。 new Date()
はこの文字列では機能しません。これらの日付文字列をローカルタイムゾーンを持つ日付オブジェクトに変換するのを手伝ってください。
ありがとうございました!
編集:Pentaho Data Integration 4.3.0でこれを使用しています。
Moment.js などのライブラリを使用してこれを行うことができます。
文字列+形式の解析をご覧ください。
http://momentjs.com/docs/#/parsing/string-format/
次のshouldは、指定した日付を解析しますが、必要に応じて変更する必要がある場合があります。
var oldDate = "2010-03-05T07:03:51-0800";
var dateObj = moment(oldDate, "YYY-MM-DDTHH:mm:ssZ").toDate();
または、MomentのStringパーサーを参照してください。これは、時間の秒とタイムゾーンの間のスペースを除いて、指定した形式であるように見えます。
http://momentjs.com/docs/#/parsing/string/
これを行う2番目の方法はDate.jsです。これは、フォーマットを適切に解析する別のライブラリです。 http://www.datejs.com
例として私のタイムゾーン(AEST)を取り上げます。
function parseDate(str_date) {
return new Date(Date.parse(str_date));
}
var str_date = "2015-05-01T22:00:00+10:00"; //AEST time
var locale_date = parseDate(str_date);
locale_date:Fri May 01 2015 22:00:00 GMT + 1000(AEST)
var str_date = "2015-05-01T22:00:00+00:00" //UTC time
var locale_date = parseDate(str_date);
locale_date:2015年5月2日(土)08:00:00 GMT + 1000(AEST)
日付文字列:
_var strDate = "2010-07-01T20:23:00-0700";
_
ネイティブJS Dateオブジェクトのローカル時間表現:
var ltzDate = (new Date(strDate)).toLocaleString();