perl有两个取得时间的函数:localtime和gmtime
 
两个函数的用法一样,区别在于localtime为取得本地时间, gmtime格林威治时间。
 
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
 
其中:
    $sec代表秒数[0,59]
    $min代表分数[0,59]
    $hour代表小时数[0,23]
    $mday代表是在这个月的第几天[1,31]
    $mon代表月数[0,11],要将$mon加1之后,才能符合实际情况。
    $year从1900年算起的年数,所以要获得当前年就需要在$year的基础上加上1900
    $wday从星期六算起,代表是在这周中的第几天[0-6]
    $yday从一月一日算起,代表是在这年中的第几天[0,364]
    $isdst只是一个flag
 
下面是一个获取当前系统时间的子函数:
 
 
  1. sub getTime 
  2.    #time()函数返回从1970年1月1日起累计秒数 
  3.     my $time = shift || time(); 
  4.      
  5.     my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($time); 
  6.      
  7.     $mon ++; 
  8.     $sec  = ($sec<10)?"0$sec":$sec;#秒数[0,59] 
  9.     $min  = ($min<10)?"0$min":$min;#分数[0,59] 
  10.     $hour = ($hour<10)?"0$hour":$hour;#小时数[0,23] 
  11.     $mday = ($mday<10)?"0$mday":$mday;#这个月的第几天[1,31] 
  12.     $mon  = ($mon<9)?"0".($mon+1):$mon;#月数[0,11],要将$mon加1之后,才能符合实际情况。 
  13.     $year+=1900;#从1900年算起的年数 
  14.      
  15.     #$wday从星期六算起,代表是在这周中的第几天[0-6] 
  16.     #$yday从一月一日算起,代表是在这年中的第几天[0,364] 
  17.   # $isdst只是一个flag 
  18.     my $weekday = ('Sun','Mon','Tue','Wed','Thu','Fri','Sat')[$wday]; 
  19.     return { 'second' => $sec, 
  20.              'minute' => $min, 
  21.              'hour'   => $hour, 
  22.              'day'    => $mday, 
  23.              'month'  => $mon, 
  24.              'year'   => $year, 
  25.              'weekNo' => $wday, 
  26.              'wday'   => $weekday, 
  27.              'yday'   => $yday, 
  28.              'date'   => "$year$mon$mday" 
  29.           }; 
通过下面的方法调用:
 
 
  1. my $date = &getTime();#获取当前系统时间的Hash 
  2. my $ymd = $date->{date};#获取yyyymmdd这样的日期   
  3. my $year=$date->{year};#获取年 
  4. my $month=$date->{month};#获取月 
  5. my $day=$date->{day};#获取日 
 
获取时分秒类似。