Java 7, 138 106 105105 104 bytes
String a(String a){return new java.text.SimpleDateFormat("HHmm""Hmm").format(new java.util.Date("Ja1,0,"+a));}
Input is colon delimited and has a space between the time and the am/pm. Output is not colon delimited.
-1 byte thanks to Kevin Cruijssen