Zero padding dates

I have a file with records containing dates like:

SMPBR|DUP-DO NOT USE|NEW YORK||16105|BA5270715|2007-6-6|MWERNER|109||||JOHN||SMITH|MD|72211118||||||74559|21 WILMINGTON RD||D|2003-11-6|SL# MD CONTACT-LIZ RICHARDS|||0|Y|N||1411458|

How can I get the date fields in each of my records to be padded with zeroes:

SMPBR|DUP-DO NOT USE|NEW YORK||16105|BA5270715|2007-06-06|MWERNER|109||||JOHN||SMITH|MD|72211118||||||74559|21 WILMINGTON RD||D|2003-11-06|SL# MD CONTACT-LIZ RICHARDS|||0|Y|N||1411458|

Thanks,

  • CB
nawk -F\| '
function zdate (date)
{
        cnt=split(date,D,"-")
        if ( cnt == 3 )
        {
        for (i=1; i<=cnt; i++ )
                if ( length(D) == 1 ) D="0"D
        return D[1]"-"D[2]"-"D[3]
        }
        else
        return(date)
}

{
        REC=""
        for ( j=1; j<=NF; j++ )
        REC=REC zdate($j) "|"
        print substr(REC,1,length(REC)-1)
}
'