Eric,
I get close to the same timing as Neil for his example. To simulate your format:
randomDateTime[years_, n_] :=
With[{range = {UnixTime[] - years*365*24*60*60, UnixTime[]}},
FromUnixTime /@ RandomInteger[range, n]]
dateStringFormat = {"Month", "/", "Day", "/", "Year", " ", "Hour12", ":", "Minute", ":", "Second", " ", "AMPM"};
timeStamps = DateString[#, dateStringFormat] & /@ randomDateTime[5, 5000];
Block[{$DateStringFormat = dateStringFormat}, DateObject /@ timeStamps;] // AbsoluteTiming
(* {1.92389, Null} *)