use Time::Local 'timelocal_nocheck'; my $year = 2003 - 1900; my $dyear = 176; my $epoch = timelocal_nocheck 0,0,0,$dyear,0,$year; ## January is month 0 ^ #### my ($month, $day) = (localtime $epoch)[4,3]; $month++; ## again, months run from 0 to 11 #### use POSIX 'strftime'; print strftime("%x", localtime $epoch), $/; #### $ perl -MPOSIX=strftime -le 'print strftime("%c", 0,0,0,176,0,103)' Thu Jun 25 00:00:00 2003