diff --git a/src/ol/format/kmlformat.js b/src/ol/format/kmlformat.js index 29e8c37fc2..8523ef4ea4 100644 --- a/src/ol/format/kmlformat.js +++ b/src/ol/format/kmlformat.js @@ -1360,28 +1360,8 @@ ol.format.KML.whenParser_ = function(node, objectStack) { 'gxTrackObject should be an Object'); var whens = gxTrackObject.whens; var s = ol.xml.getAllTextContent(node, false); - var re = - /^\s*(\d{4})($|-(\d{2})($|-(\d{2})($|T(\d{2}):(\d{2}):(\d{2})(Z|(?:([+\-])(\d{2})(?::(\d{2}))?)))))\s*$/; - var m = re.exec(s); - if (m) { - var year = parseInt(m[1], 10); - var month = m[3] ? parseInt(m[3], 10) - 1 : 0; - var day = m[5] ? parseInt(m[5], 10) : 1; - var hour = m[7] ? parseInt(m[7], 10) : 0; - var minute = m[8] ? parseInt(m[8], 10) : 0; - var second = m[9] ? parseInt(m[9], 10) : 0; - var when = Date.UTC(year, month, day, hour, minute, second); - if (m[10] && m[10] != 'Z') { - var sign = m[11] == '-' ? -1 : 1; - when += sign * 60 * parseInt(m[12], 10); - if (m[13]) { - when += sign * 60 * 60 * parseInt(m[13], 10); - } - } - whens.push(when); - } else { - whens.push(0); - } + var when = Date.parse(s); + whens.push(isNaN(when) ? 0 : when); }; diff --git a/test/spec/ol/format/kmlformat.test.js b/test/spec/ol/format/kmlformat.test.js index 46ae161a81..53a48060e0 100644 --- a/test/spec/ol/format/kmlformat.test.js +++ b/test/spec/ol/format/kmlformat.test.js @@ -1138,7 +1138,7 @@ describe('ol.format.KML', function() { expect(flatCoordinates[11]).to.be.eql(Date.UTC(2014, 1, 6, 0, 0, 0)); expect(flatCoordinates[15]).to.be.eql(Date.UTC(2014, 1, 6, 19, 39, 3)); expect(flatCoordinates[19]).to.be.eql( - Date.UTC(2014, 1, 6, 19, 39, 10) + 3 * 60 + Date.UTC(2014, 1, 6, 16, 39, 10) ); });