Serial.read() help

You have this code:

      if(timeString[i] < '0' || timeString[i] > '9') {
        timeStringValid = false;  // if any character is bad then the whole string is bad

When you send a '-' as part of the string, you are declaring that the whole string is invalid.

Try this:

      if([glow]([/glow]timeString[i] < '0' || timeString[i] > '9'[glow]) && 
                  timeString[i] != '-')[/glow] {
        timeStringValid = false;  // if any character is bad then the whole string is bad