perl帮助查找正确的日期格式

perl帮助查找正确的日期格式,perl,datetime,date,Perl,Datetime,Date,我需要一些帮助来找出如何用perl格式化日期。我有一个可用的perl脚本,带有正则表达式,如果我使用如下硬编码日期字符串,它可以正常工作: my $mon = 'Aug'; my $day = '05'; my $year = '2010'; if ($line =~ m/(.* $mon $day) \d{2}:\d{2}:\d{2} $year: ([^:]+):backup:/) 这些变量在如下正则表达式中使用: my $mon = 'Aug'; my $day = '05'; my

我需要一些帮助来找出如何用perl格式化日期。我有一个可用的perl脚本,带有正则表达式,如果我使用如下硬编码日期字符串,它可以正常工作:

my $mon = 'Aug';
my $day = '05';
my $year = '2010';
if ($line =~ m/(.* $mon $day) \d{2}:\d{2}:\d{2} $year: ([^:]+):backup:/)
这些变量在如下正则表达式中使用:

my $mon = 'Aug';
my $day = '05';
my $year = '2010';
if ($line =~ m/(.* $mon $day) \d{2}:\d{2}:\d{2} $year: ([^:]+):backup:/)
现在,我需要自动化代码的这个日期部分,并系统地使用当前日期。 我研究了PerlLocalTime,尝试使用UnixDate并将它们放入变量中。 我需要用“0”填充一周中的天数,单位数字。与今天一样,“2005年8月” “2010”,因为我用于正则表达式的输入文件的日期如下

我第二次尝试使用unix和格式化是返回数字,但我需要将它们设置为字符串:

 my $mon2=`date '+%b'`;
 my $day2=`date '+%d'`;
 my $year2=`date '+%Y'`;
我玩日期格式的测试代码:

#!/usr/local/bin/perl -w

use strict;

my $mon = 'Aug';
my $day = '05';
my $year = '2010';

my $mon2=`date '+%b'`;
my $day2=`date '+%d'`;
my $year2=`date '+%Y'`;

print "$mon";
print "$day";
print "$year";

print "$mon2";
print "$day2";
print "$year2";
我的输出:

Aug052010Aug
05
2010

我不想打断你,但你在重新发明轮子。所有这些都在分配和阶级家庭中得到了相当全面的实施:

use DateTime;
my $dt = DateTime->now;
print 'It is currently ', $dt->strftime('%b %d %H:%M:%S'), ".\n";
印刷品:

It is currently Aug 05 23:54:01. 现在是8月5日23:54:01。
我不想打断你,但你在重新发明轮子。所有这些都在分配和阶级家庭中得到了相当全面的实施:

use DateTime;
my $dt = DateTime->now;
print 'It is currently ', $dt->strftime('%b %d %H:%M:%S'), ".\n";
印刷品:

It is currently Aug 05 23:54:01. 现在是8月5日23:54:01。
如果您出于某种原因不想安装DateTime(尽管它非常棒),您可以使用标准
POSIX
模块中的
strftime
功能。谢谢大家!非常有用的信息。如果您出于某种原因不想安装DateTime(尽管它非常棒),您可以使用标准
POSIX
模块中的
strftime
功能。谢谢大家!非常有用的信息。