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.

2 Answers 2


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.


Try this

Datetime dt = datetime.newInstance(dToday.year(), dToday.month(),dToday.day());

here dToday is your field.

  • Thanks for your reply, but it is converting to "2016-05-20T08:46:52.372Z" format. May 20, 2016 at 8:48
  • so you want o add -hh:mm in the end again. May 20, 2016 at 9:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .