Mendix internally uses the same patterns as the SimpleDateFormat from Java: http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html that documentation sometimes is more helpful.
I'm not really sure from your example what you are getting from the service and what mendix gets, but regardless if you want to use 9pm and show it later as 21hr you should also parse the pm indicator.
Simply parsing the hh:mm would assume it is AM not PM. So if you would like to parse the text "9:14 PM" you should use the pattern "hh:mm a" the "a" parses the AM/PM indicator and makes sure the time becomes 21hr.
Also make sure to use hh for a 1-12 hr notation. if you use HH (upper case) it will interpret it as a 24hr notation regardless and override/ignore the am/pm indicator.
In you should try formatDateTime(parseDateTime($Time, 'HHmmss'),'HH:mm:ss')
You are missing the format when converting the number to a string.