Salesforce Apex: ISO Timestamp Format Function
Asked Answered
C

2

8

I was wondering if there is an apex date or datetime function to format a date/time to the ISO formatted timestamp "2007-04-05T12:30-02:00" or would this have to be created by another means?

Thanks.

Corbel answered 31/8, 2013 at 17:10 Comment(0)
P
22

In Apex you can use the DateTime format(string dataFormat) or format(string dataFormat, string timezone) methods. It accepts a dataFormat string, which corresponds to a Java simple date format. You will need to define the correct format for ISO 8601.

Also, take into account the timezone of the DateTime. In the example below I've used formatGMT to avoid the timezone offset.

System.debug(datetime.now().formatGMT('yyyy-MM-dd\'T\'HH:mm:ss.SSS\'Z\''));

Alternatively, you could use the JSON serializer.

System.debug(json.serialize(datetime.now()));
Pocked answered 1/9, 2013 at 19:20 Comment(1)
note with json.serialize(): It seems to wrap the returned string in singe quotes.Heifetz
B
1

For anyone reading this now, if you want the time zone, using Java SimpleDateFormat, you can get the +/-hh:mm timezone offset value:

System.debug(datetime.now().format('yyyy-MM-dd\'T\'HH:mm:ss.SSSXXX', 'America/Los_Angeles'));

Output: 2021-01-15T17:30:22.735-08:00
Barns answered 15/1, 2021 at 12:1 Comment(1)
Note that you can use System.debug(datetime.now().format('yyyy-MM-dd\'T\'HH:mm:ss.SSSXXX', 'UTC')); to get UTC datetime with no offsetAspinwall

© 2022 - 2024 — McMap. All rights reserved.