perl 从DateTime日期中提取年,月,日

lvmkulzt  于 2022-11-15  发布在  Perl
关注(0)|答案(2)|浏览(118)

我有一个变量$nowDate,它将当前日期保存为DateTime对象。
现在,我需要从变量中提取月、日和年,并将它们分配给各自的变量。

my $nowDate = DateTime->now(time_zone => 'local');
wh6knrhe

wh6knrhe1#

最简单的方法是显式获取它们

my $nowDate = DateTime->now(time_zone => 'local');

my ($month, $day, $year) = ($nowDate->month, $nowDate->day, $nowDate->year);
bjg7j2ky

bjg7j2ky2#

DateTime具有针对这些对象的方法:year(yyyy)、month(1-12)和day(1-31)

my ($year, $month, $day) = map { $nowDate->$_ } qw(year month day);

这可能会返回一位数的月份或日期,例如5表示May(而不是05)。

my ($year, $month, $day) = map { sprintf "%02d", $nowDate->$_ }

如果您的应用程序依赖于两位数格式。
例如,您也可以将它们从$nowDate中提取出来

my ($year, $month, $day) = split '-', $nowDate->ymd;            # 2017-05-09

my ($year, $month, $day) = unpack "A4A2A2", $nowDate->ymd('');  # 20170509

方法ymd允许指定分隔符,默认值为-。请参阅文档。

相关问题