我有一个从日志文件解析的示例字符串,格式如下:
“Mon Apr 25 17:47:19 2011”
我希望它看起来像
“Mon Apr 25 05:47 PM 2011”
我一般如何做到这一点? (即每次当然不会是相同的字符串)。
非常感谢。
答案 0 :(得分:10)
如果有疑问,与DateTime一起使用通常是一个不错的选择。在这种情况下,你可以:
use DateTime;
use DateTime::Format::Strptime;
my $parser = DateTime::Format::Strptime->new(
pattern => '%a %b %d %H:%M:%S %Y'
);
my $dt = $parser->parse_datetime('Mon Apr 25 17:47:19 2011');
print $dt->strftime('%a %b %d %I:%M%p %Y'), "\n";
如果您需要有关模式的信息,请参阅the strftime docs或DateTime Manual中的类似部分。
您也可以使用POSIX中的strftime
函数和POSIX::strptime中的strptime
函数来处理此问题,但界面不太令人愉快。