我有一个变量$nowDate,它将当前日期保存为DateTime对象。现在,我需要从变量中提取月、日和年,并将它们分配给各自的变量。
$nowDate
DateTime
my $nowDate = DateTime->now(time_zone => 'local');
wh6knrhe1#
最简单的方法是显式获取它们
my $nowDate = DateTime->now(time_zone => 'local'); my ($month, $day, $year) = ($nowDate->month, $nowDate->day, $nowDate->year);
bjg7j2ky2#
DateTime具有针对这些对象的方法:year(yyyy)、month(1-12)和day(1-31)
year
month
day
my ($year, $month, $day) = map { $nowDate->$_ } qw(year month day);
这可能会返回一位数的月份或日期,例如5表示May(而不是05)。
5
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允许指定分隔符,默认值为-。请参阅文档。
ymd
-
2条答案
按热度按时间wh6knrhe1#
最简单的方法是显式获取它们
bjg7j2ky2#
DateTime具有针对这些对象的方法:
year
(yyyy)、month
(1-12)和day
(1-31)这可能会返回一位数的月份或日期,例如
5
表示May(而不是05
)。如果您的应用程序依赖于两位数格式。
例如,您也可以将它们从
$nowDate
中提取出来或
方法
ymd
允许指定分隔符,默认值为-
。请参阅文档。