在Perl中从DateTime获取两位数的月份和日期
问题描述:
你好我正在使用Perl的DateTime来解析一个字符串并将其转换为日期格式。这里在Perl中从DateTime获取两位数的月份和日期
我的代码如下所示:
my $parser = DateTime::Format::Strptime->new(pattern => "%Y-%m-%dT%H:%M:%SZ", time_zone => 'UTC', on_error => 'croak');
my $startDate = $parser->parse_datetime("2017-04-14T21:00:00Z");
my $endDate = $parser->parse_datetime("2017-04-14T23:00:00Z");
print $startDate->month();
当我打印了一个月,我只得到4,或日期更改为一个小于10,我得到一个数字。
是否有更清晰的方式获得两位数的月份/日期,而不会在数字前加上零,如果数字小于10?
答
使用sprintf(或printf,如果您打算打印它)。
my $month = sprintf("%02d", $startDate->month());
它将零垫输入。查看the documentation了解更多关于格式参数的信息。
答
您还可以得到所有的人,因为你可能会需要他们
my ($year, $mon, $day) = unpack "A4A2A2", $startDate->ymd('');
或
my ($year, $mon, $day) = split '-', $startDate->ymd();
与DateTime::ymd()
缺省分隔符为-
(DASH)。