<entry><literal>(Mon) Nov. 23, 1959</literal></entry>
</row>
</tbody>
</tgroup>
</table>
</listitem>
</varlistentry>
<varlistentry id="pgtypesdatedefmtasc">
<term><function>PGTYPESdate_defmt_asc</function></term>
<listitem>
<para>
Use a format mask to convert a C <type>char*</type> string to a value of type
date.
<synopsis>
int PGTYPESdate_defmt_asc(date *d, char *fmt, char *str);
</synopsis>
<!-- same description as rdefmtdate -->
The function receives a pointer to the date value that should hold the
result of the operation (<literal>d</literal>), the format mask to use for
parsing the date (<literal>fmt</literal>) and the C char* string containing
the textual representation of the date (<literal>str</literal>). The textual
representation is expected to match the format mask. However you do not
need to have a 1:1 mapping of the string to the format mask. The
function only analyzes the sequential order and looks for the literals
<literal>yy</literal> or <literal>yyyy</literal> that indicate the
position of the year, <literal>mm</literal> to indicate the position of
the month and <literal>dd</literal> to indicate the position of the
day.
</para>
<para>
<xref linkend="ecpg-rdefmtdate-example-table"/> indicates a few possible formats. This will give
you an idea of how to use this function.
</para>
<table id="ecpg-rdefmtdate-example-table">
<title>Valid Input Formats for <function>rdefmtdate</function></title>
<tgroup cols="3">
<thead>
<row>
<entry>Format</entry>
<entry>String</entry>
<entry>Result</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>ddmmyy</literal></entry>
<entry><literal>21-2-54</literal></entry>
<entry><literal>1954-02-21</literal></entry>
</row>
<row>
<entry><literal>ddmmyy</literal></entry>
<entry><literal>2-12-54</literal></entry>
<entry><literal>1954-12-02</literal></entry>
</row>
<row>
<entry><literal>ddmmyy</literal></entry>
<entry><literal>20111954</literal></entry>
<entry><literal>1954-11-20</literal></entry>
</row>
<row>
<entry><literal>ddmmyy</literal></entry>
<entry><literal>130464</literal></entry>
<entry><literal>1964-04-13</literal></entry>
</row>
<row>
<entry><literal>mmm.dd.yyyy</literal></entry>
<entry><literal>MAR-12-1967</literal></entry>
<entry><literal>1967-03-12</literal></entry>
</row>
<row>
<entry><literal>yy/mm/dd</literal></entry>
<entry><literal>1954, February 3rd</literal></entry>
<entry><literal>1954-02-03</literal></entry>
</row>
<row>
<entry><literal>mmm.dd.yyyy</literal></entry>
<entry><literal>041269</literal></entry>
<entry><literal>1969-04-12</literal></entry>
</row>
<row>
<entry><literal>yy/mm/dd</literal></entry>
<entry><literal>In the year 2525, in the month of July, mankind will be alive on the 28th day</literal></entry>
<entry><literal>2525-07-28</literal></entry>
</row>
<row>
<entry><literal>dd-mm-yy</literal></entry>
<entry><literal>I said on the 28th of July in the year 2525</literal></entry>
<entry><literal>2525-07-28</literal></entry>
</row>
<row>
<entry><literal>mmm.dd.yyyy</literal></entry>
<entry><literal>9/14/58</literal></entry>
<entry><literal>1958-09-14</literal></entry>