The extract_date function searches a string for a date and returns the date. This function uses standard IDOL date formats. All date and time input is treated as local time unless it contains explicit time zone information.

The following table describes the standard IDOL date formats:

YY Year (2 digits). For example, 99, 00, 01 and so on.
YYYY Year (4 digits). For example, 1999, 2000, 2001 and so on.

Year (2 or 4 digits). If you provide 2 digits, then it uses the YY format. If you provide 4 digits, it uses the YYYY format.

For example, it interprets 07 as 2007 AD and 1007 as 1007 AD.

#Y Year (1 to a maximum of 16 digits) and can be followed by AD or BC. An apostrophe (') immediately before the year denotes a truncated year. For example, 2008, '97 (interpreted as 1997), 97 (interpreted as 97 AD), '08 (interpreted as 2008), 2008 AD and 200 BC. A truncated year with a BC identifier is invalid ('08 BC).
#FULLYEAR Year (1 to a maximum of 16 digits). For example 8, 98, 108, 2008, each of which is taken literally. The year is taken relative to the common EPOCH (0AD).

Time Period. For example, AD, CE, BC, BCE or any predefined list of EPOCH indicators. Typically, the year specified using the above Year formats is interpreted as un-truncated and relative to the EPOCH. For example, 84 AD is interpreted as 1984 AD and 84 BC is interpreted as 84 BC.

The only exception to this is when you use both #YY+ and #ADBC. In this case, the format is interpreted as un-truncated even if the year was set to truncated by #YY+. For example, 99 AD is interpreted as the year 99 AD.

HPE recommends you use only YY, YYYY or #FULLYEAR with #ADBC.

LONGMONTH A long month, for example, January, February and so on.
SHORTMONTH A short month, for example, Jan, Feb and so on.
MM Month (2 digits). For example, 01, 10, 12 and so on.
M+ Month (1 or 2 digits). For example, 1,2,3,10 and so on.
DD Day (2 digits). For example, 01, 02, 03, 12, 23 and so on.
D+ Day (1 or 2 digits). For example, 1, 2, 12, 13, 31 and so on.
LONGDAY 2 digits with a postfix. For example, 1st, 2nd and so on.
HH Hour (2 digits). For example, 01, 12, 13 and so on.
H+ Hour (1 or 2 digits).
NN Minute (2 digits).
N+ Minute (1 or 2 digits).
SS Second (2 digits).
S+ Second (1 or 2 digits).
ZZZ Time Zone, for example, GMT, EST, PST, and so on.
ZZZZZ Time Difference (1 to 9 digits). For example, +04 denotes 4 hours ahead of UTC. Other examples include +4, +04, +0400, +0400 MSD (the string MSD is ignored). A further example is +030, in this case the time differences is interpreted as 30 minutes.
#PM AM or PM indicator (2 characters). For example, 2001/09/09 02:46:40 pm
#S A space

The following table shows some example date and time formats:

Date and time format string Example date
DD/MM/YYYY 09/05/2013
D+ LONGMONTH YYYY HH:NN:SS ZZZZZ 17 August 2003 10:41:07 -0400


extract_date( input, formatCSV, outputFormat )


Argument Description
input (string) The string that you want to search for a date.
formatCSV (string) A comma-separated list of the possible date and time formats for dates contained in the input.
outputFormat (string) The format for the output.


(String). A string containing the date and time in the desired format.


The following example would return the value "1989/01/14":

extract_date("This string contains a date 14/01/1989 somewhere", "DD/YYYY/MM,DD/MM/YYYY", "YYYY/MM/DD")