2017-10-21 87 views
1

你好我正在使用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?

回答

3

使用sprintf(或printf,如果您打算打印它)。

my $month = sprintf("%02d", $startDate->month()); 

它將零墊輸入。查看the documentation瞭解更多關於格式參數的信息。

2

您還可以得到所有的人,因爲你可能會需要他們

my ($year, $mon, $day) = unpack "A4A2A2", $startDate->ymd(''); 

my ($year, $mon, $day) = split '-', $startDate->ymd(); 

DateTime::ymd()缺省分隔符爲-(DASH)。

相關問題