code: function parseISO8601(str) {
      if (Date.prototype.toISOString) {
          return new Date(str);
      } else {
          var parts = str.split('T'),
              dateParts = parts[0].split('-'),
              timeParts = parts[1].split('Z'),
              timeSubParts = timeParts[0].split(':'),
              timeSecParts = timeSubParts[2].split('.'),
              timeHours = Number(timeSubParts[0]),
              _date = new Date();
  
          _date.setUTCFullYear(Number(dateParts[0]));
          _date.setUTCDate(1);
          _date.setUTCMonth(Number(dateParts[1])-1);
          _date.setUTCDate(Number(dateParts[2]));
          _date.setUTCHours(Number(timeHours));
          _date.setUTCMinutes(Number(timeSubParts[1]));
          _date.setUTCSeconds(Number(timeSecParts[0]));
          if (timeSecParts[1]) {
              _date.setUTCMilliseconds(Number(timeSecParts[1]));
          }
  
          return _date;
      }
  }
docs: Code based on http://anentropic.wordpress.com/2009/06/25/javascript-iso8601-parser-and-pretty-dates/#comment-154