Your logic is a bit out. You're testing every char in newTime against the first char in COLON - it would validate an input like "::::". Your technique for validating your input is ok - it's not as nice as using a regular expression or string splitting, but back in the day when we only had fixed-width fields (my lawn!), everybody did it your way. Since you know exactly what char should be at each position in your 8-char input, you could do it without a loop at all (the ugliest solution) with 8 if statements. if char at 0 is not 0-5, throw, if char at 2 is not ':' /* use apostrophes to make a constant char in Java */, throw - like that.
You could construct some validation code that did
use a for loop and an Array of Strings containing valid characters for each position in your field. That seems to be what you're attempting. In that case, you'd use a single index to pick both a character from newTime and its corresponding String containing valid chars, and use String.indexOf to check that the newTime char is in its corresponding validation String. That would work and might not look too ugly.
I would habitually use a Pattern object (String.matches() does something similar) like Junky says for your particular problem - the expression for a fixed-width field with limited valid chars in each position is quite easy, once you get your head around the format.