我们定制了监控 Perl 脚本,当它的格式为“Wed May 29 23:55:19 2013”时,从 oracle 警报日志文件中提取计时数据来监控警报日志。但是对于 Oracle 10.2.0.5 数据库,oracle 还会在警报日志文件中写入时区信息以及诸如“Thu May 30 01:30:43 ADT 2013”之类的日期。
我们使用下面的脚本来获取 yyyymmddhhmmss 中的时间戳。但是,当 alertlog 文件具有带时区的日期格式时,相同的脚本会失败。
sub make_timestamp
{
my ($day_name,$month_name,$day,$time_stamp,$year,$timestamp);
chomp @_[0];
($day_name,$month_name,$day,$time_stamp,$year) = split (/ +/,@_[0]);
($hour,$min,$sec) = split(/:/,$time_stamp);
## $day = $padded_number{$day} if ($day < 10);
$timestamp = $year . $month{$month_name} . $day . $hour . $min . $sec;
return $timestamp;
}
你能帮我修复这个代码吗?