从给定日期开始的月份

时间:2014-03-04 20:18:58

标签: perl

我有一个包含日期列表的文件。我想获得月份的信息。我正在做以下事情:(我省略了打开文件的部分)

 $request_date = "2012-01-02 08:12:11";
 chomp(my $monthdatefile = `date '+%B %Y' --date='$request_date'`);

但需要太多。

从Unix将是我想要的:

   $ date '+%B %Y' --date='2012-01-02 08:12:11'
   January 2012

2 个答案:

答案 0 :(得分:4)

像这样使用Time::Piece

use strict;
use warnings;

use Time::Piece;

my $request_date = '2012-01-02 08:12:11';

my $tp         = Time::Piece->strptime($request_date, '%Y-%m-%d %H:%M:%S');
my $month_year = $tp->strftime('%B %Y');

print $month_year;

<强>输出

January 2012

答案 1 :(得分:0)

如果你关心速度,我只需要一个包含12个条目的哈希表。 然后按如下方式提取字段:

my %hash = (1 => 'January', 2=>'February', ...);

$request_date =~ /^(\d+)-(\d+)-/;
my ($year,$month) = ($1,$2);
print $hash{$month}." ".$year;
相关问题