anchor.diff:    } else if (!s.contains('Z')) {
       throw new FormatException();
     }
  -  
  +
     var stopIdx = symbolIdx != -1 ? symbolIdx : s.length - 1;
     var fraction = '0' + '.' + s.substring(startIdx, stopIdx);
     var ms = double.parse(fraction) * 1000;
  
positive.code:     int min = minutes.isEmpty ? 0 : one * int.parse(minutes, radix: 10) * 60 * 1000;
      tz = hr + min;
    }
    
    return ms.toInt() + tz;
  }
  
  
negative.code:   } else {
      return 0;
    }
  
    var tz = 0;
    var symbolIdx = -1;
    var plusIdx = s.indexOf('+');
  