![]() |
![]() |
|
Getting
and
Formatting
Dates in Perl
Dates in Perl are a pretty big subject but the essence can be reduced to two simple rules: use 'localtime' to retrieve Perl's internal date block and then use 'sprintf' to format the retrieved date. The following subroutine returns the current date and time in the format 'dd-MMM-yy hh:mm' (e.g. 23-DEC-05 15:35)... sub FormatCurrentDateAndTime { my $V_CURRENT = localtime; my $V_SECOND = substr($V_CURRENT, 17, 2); my $V_MINUTE = substr($V_CURRENT, 14, 2); my $V_HOUR = substr($V_CURRENT, 11, 2); my $V_DAY = substr($V_CURRENT, 8, 2); my $V_MONTH = uc(substr($V_CURRENT, 4, 3)); my $V_YEAR = substr($V_CURRENT, 20, 4); # ------------------------------- # And Format the output string... # ------------------------------- $V_ID_STRING = sprintf("%02d-%s-%02d_%02d:%02d", $V_DAY, $V_MONTH, $V_YEAR, $V_HOUR, $V_MINUTE); TraceScript $Debug, "MakeDateTimeID", "Generated id is [" . $V_ID_STRING . "]"; return $V_ID_STRING; } The above code is very simple. Calling localtime without an argument gets the current date and time which is then sliced up into the named variables. Sprintf is then called to reformat the value the way we want it. The TraceScript call gives the clue that this particular example is being used to generate a unique ID. Find out more
by searching Google here...
|