[SalesForce] Datetime format ignores am/pm

Hi I am new to apex coding and am trying to parse a datetime and then later on in my program I am trying to convert it back into a string to query items.

For converting a string into a datetime I am using

String testDateString = '7/1/2015 1:30 PM';
DateTime testDate = DateTime.parse(sdate);

To convert the datetime back into a string I am using:

String convertedDate = testDate.formatGmt('yyyy-MM-dd\'T\'hh:mm:ss\'Z\'');

but this gives me the string
2015-07-01T08:30:00.000Z, which would be correct if the time was 7/1/2015 1:30 AM

but I am expecting the string

2015-07-01T20:30:00.000Z.

Is there a reason why the formatGmt ignores the AM/PM? Am i doing something clearly wrong?

Thanks for the help

Best Answer

You meant to use HH instead of hh. Lowercase hh returns only the 12-hour version of the hour, while using HH returns the zero-based 24-hour version of the hour. See Java's SimpleDateFormat for more details.

Related Topic