Finally I managed to understand what the problem was.
I should hold on my string 11 PM instead of 23 PM
What I don't understand is why parsing '23:00 PM' with SimpleDateFormat("hh:mm aa") returns 11 a.m.?
My guess is it adds 12 hrs to the parsed date.
I hope there is not much problem.