33

私の日付文字列の形式は次のようになります。yyyy-MM-ddTHH:mm:ss-0Z00

例12010-03-05T07:03:51-0800

例22010-07-01T20:23:00-0700

これらの日付文字列を使用して日付オブジェクトを作成する必要があります。new Date()この文字列では機能しません。これらの日付文字列をローカルタイムゾーンの日付オブジェクトに変換するのを手伝ってください。

ありがとうございました!

編集:私はこれをPentaho DataIntegration4.3.0で使用しています。

4

3 に答える 3

29

例として私のタイムゾーンを取り上げます(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:2015年5月1日金曜日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)

于 2015-05-25T03:24:18.933 に答える
22

これを行うには、 Moment.jsなどのライブラリを使用できます。

文字列+フォーマットの解析を参照してください。

http://momentjs.com/docs/#/parsing/string-format/

以下、指定した日付を解析する必要がありますが、必要に応じて変更する必要がある場合があります。

var oldDate = "2010-03-05T07:03:51-0800";

var dateObj = moment(oldDate, "YYY-MM-DDTHH:mm:ssZ").toDate();

または、時間の秒とタイムゾーンの間のスペースを除いて、指定した形式のように見えるMomentの文字列パーサーを参照してください。

http://momentjs.com/docs/#/parsing/string/

これを行う2番目の方法はDate.jsです。これは、フォーマットを適切に解析しているように見える別のライブラリです。http://www.datejs.com

于 2012-08-02T02:51:26.413 に答える
14

日付文字列:

var strDate = "2010-07-01T20:23:00-0700";

ネイティブJSDateオブジェクトの現地時間表現へ:

var ltzDate = (new Date(strDate)).toLocaleString();

于 2012-08-02T03:13:24.453 に答える