首页 > 解决方案 > 如何在 Perl 中获取 DateTime 对象的年份?

问题描述

我试图从 Perl 中的 DateTime 变量中提取年份。

我试过这个:

% cat test2
#!/usr/local/bin/perl

use strict;
use DateTime;

my $dt_begin = DateTime->new(
        year    => 2000,
        month   => 1,
        day     => 1,
);

print "###\n$dt_begin $dt_begin->year\n###\n";

我得到这个作为输出:

% ./test2
###
2000-01-01T00:00:00 2000-01-01T00:00:00->year
###

在我期待的时候:

% ./test2
###
2000-01-01T00:00:00 2000
###

标签: perl

解决方案


year()是一个方法并且方法调用没有被插值。您可以使用串联:

...
print("###\n$dt_begin " . $dt_begin->year() . "\n###\n");
...

或者printf()

...
printf("###\n%s %i\n###\n", $dt_begin, $dt_begin->year());
...

推荐阅读