Le format de ma chaîne de date ressemble à ceci: yyyy-MM-ddTHH:mm:ss-0Z00
Exemple 1: 2010-03-05T07:03:51-0800
Exemple 2: 2010-07-01T20:23:00-0700
J'ai besoin de créer un objet date à l'aide de ces chaînes de date. new Date()
ne fonctionne pas sur cette chaîne. Aidez-moi à convertir ces chaînes de date en objets de date avec le fuseau horaire local.
Merci!
Edit: J'utilise ceci dans Pentaho Data Integration 4.3.0.
Vous pouvez utiliser une bibliothèque telle que Moment.js pour ce faire.
Voir l'analyse String + Format.
http://momentjs.com/docs/#/parsing/string-format/
Les éléments suivants devraient analyser la date que vous avez fournie, mais vous devrez peut-être la modifier selon vos besoins.
var oldDate = "2010-03-05T07:03:51-0800";
var dateObj = moment(oldDate, "YYY-MM-DDTHH:mm:ssZ").toDate();
Vous pouvez également voir l'analyseur de chaînes de Moment, qui semble avoir le format que vous avez fourni, à l'exception d'un espace entre les secondes de l'heure et le fuseau horaire.
http://momentjs.com/docs/#/parsing/string/
Une deuxième façon de procéder est Date.js, une autre bibliothèque qui semble bien analyser le format. http://www.datejs.com
Prenons mon fuseau horaire comme exemple (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: ven 01 mai 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: sam.02 mai 2015 08:00:00 GMT + 1000 (AEST)
Chaîne de date:
var strDate = "2010-07-01T20:23:00-0700";
Pour la représentation de l'heure locale dans un objet Date JS natif:
var ltzDate = (new Date(strDate)).toLocaleString();