[SalesForce] How to convert Date to format “YYYY-MM-DDThh:mm:ss-hh:mm”

I want to convert Date from "YYYY-MM-DD" to "YYYY-MM-DDThh:mm:ss-hh:mm" format in Apex.
Ex. "2016-05-20" should be converted to "2016-05-20T00:00:00-00:00".
Any help/suggestion is appreciated.

Best Answer

I tried "yyyy-MM-dd\'T\'HH:mm:ss.SSSXXX" pattern and I am able to convert Date from "YYYY-MM-DD" to "YYYY-MM-DDThh:mm:ss-hh:mm" format as given below-

Date d = System.today();
Datetime myDT = datetime.newInstance(d.year(), d.month(),d.day());
String myDate = myDT.format('yyyy-MM-dd\'T\'HH:mm:ss.SSSXXX');

"YYYY-MM-DDThh:mm:ss-hh:mm" is ISO 8601 format. Check this link- https://www.w3.org/TR/xmlschema-2/#isoformats for ISO formats.

Refer http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html for formatting and parsing dates.