code: function Time(timeString) {
      babelHelpers.classCallCheck(this, Time);
  
      // Return if timeString not a string
      if (timeString && 'string' != typeof timeString) return timeString;
  
      this._date = DEFAULT_DATE;
      this._locale = null;
      this._offset = 0;
      this._offsetString = DEFAULT_OFFSET;
      this.isValid = false;
      this.timeString = DEFAULT_DATE;
  
      // Local "now"
      if (timeString == null) timeString = clientNow();
      // Prevent regex denial of service
      if (timeString.length > 30) return;
  
      var match = timeString.match(RE_PARSE);
  
      if (!match) return;
  
      // We check for match[i] == null because of a bug in Samsung Internet browser causing the RegEx matching to fail after many iterations
      // Link to GitHub issue: https://github.com/SamsungInternet/support/issues/82
      var year = parseInt(match[1], 10);
      var month = match[2] == null ? 1 : parseInt(match[2], 10);
      var day = match[3] == null ? 1 : parseInt(match[3], 10);
      var hour = match[4] == null ? 0 : parseInt(match[4], 10);
      var minute = match[5] == null ? 0 : parseInt(match[5], 10);
      var second = match[6] == null ? 0 : parseInt(match[6], 10);
      var millisecond = match[7] == null ? 0 : parseInt(match[7], 10);
      var offset = match[8] == null ? '' : match[8];
  
      // Handle TZ offset
      if (offset && offset != DEFAULT_OFFSET) {
        var dir = match[9] == '+' ? 1 : -1;
  
        this._offset = dir * (+match[10] * 60 + +match[11]);
        this._offsetString = offset;
      }
  
      // Create UTC date based on local time so we can always use UTC methods
      this._date = new Date(Date.UTC(year, month - 1, day, hour, minute, second, millisecond));
      this.isValid = isValid(this._date);
      this.timeString = this.toString();
    }
docs: Constructor
  @param {String} [timeString]