Sorry for not answering the question...but why wouldn't I be able to set the hour of a 12 hour clock to 17:00:00 and have your program parse it accordingly? That seems like a big restriction for little to no benefit.
Actually I was considering doing this.
Why would you create a clock with the constructor:
public Clock(double timeFactor, ClockFormat format)
Clock clock = new Clock(1, ClockFormat.HOUR_12);
Then decide to change it later? Actually you can change it at any time by simply changing the clock format. Fair enough you never seen this constructor until now but still...
But in what situation would you want to parse one format to another? Serious question because I cant think of one lol