Perl - 如何转换日期?

abr*_*bra 4 format perl date

如何转换日期格式YYYY-MM-DDTHH:MM:SSZ到YYYY-MM-DD HH:MM + 8小时?

例如:

Input: 2011-07-07T18:05:45Z

Output: 2011-07-08 02:05
Run Code Online (Sandbox Code Playgroud)

Len*_*ffe 6

让我们从Rahul的片段开始,添加日期数学和输出格式......

use DateTime; 
use DateTime::Format::ISO8601;

use DateTime::Format::Strptime;

my $string = '2011-07-07T18:05:45Z';
my $dt = DateTime::Format::ISO8601->parse_datetime( $string ); 
die "Impossible time" unless $dt;

my $formatter = new DateTime::Format::Strptime(pattern => '%Y-%m-%d %T');
$dt->add( hours => 8 )->set_formatter($formatter);
print "$dt\n";
Run Code Online (Sandbox Code Playgroud)

我添加了DateTime :: Format :: Strptime的使用,以指定所需的输出格式.

然后我又增加了三行:

  1. 首先,我创建一个格式化程序,并将其输入我想要的输出模式.
  2. 接下来我将8小时添加到原始日期,并通过将set_formatter()调用链接到add()调用来分配输出格式化程序.
  3. 然后我打印出来.