从DateTime日期提取月,日和年

时间:2017-05-09 22:28:51

标签: perl

我有一个变量$nowDate将当前日期保存为DateTime对象。

现在我需要从该变量中提取月,日和年,并将它们分配给自己的变量。我该怎么做呢?

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

2 个答案:

答案 0 :(得分:2)

最简单的方法是明确地获取它们

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

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

答案 1 :(得分:1)

DateTime有这些方法,prompt=none(yyyy),year(1-12)和month(1-31)

day

请注意,您可能会获得一位数的月份或日期,例如5月的my ($year, $month, $day) = map { $nowDate->$_ } qw(year month day); (不是5)。如果您的应用程序依赖于两位数格式,那么您可能需要05

或者你可以将它们从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。见文档。