如何转换日期格式YYYY-MM-DDTHH:MM:SSZ到YYYY-MM-DD HH:MM 8小时?
例如:
Input: 2011-07-07T18:05:45Z Output: 2011-07-08 02:05
解决方法
让我们从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";
我添加了DateTime :: Format :: Strptime的使用,以指定所需的输出格式.
然后我又增加了三行:
>首先,我创建一个格式化程序,并将其输入我想要的输出模式.>接下来,我将8小时添加到原始日期,然后分配输出通过将set_formatter()调用链接到add()调用来格式化.>然后我打印出来.