我有一个变量$nowDate
将当前日期保存为DateTime
对象。
现在我需要从该变量中提取月,日和年,并将它们分配给自己的变量。我该怎么做呢?
my $nowDate = DateTime->now(time_zone => 'local');
答案 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
。见文档。