如何将日期格式 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 的使用,以便指定所需的输出格式。
然后我又添加了三行:
格式化程序通过将 set_formatter() 调用链接到 add() 调用。
关于Perl - 如何转换日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6615841/