#!/usr/bin/env perl use strict; use warnings; use 5.012; use XML::Twig; use DateTime; use Date::Parse; # # change time format from: # Mon Feb 06 2012 19:51:42 GMT-0500 (EST) # to 2012-02-06T16:50:52Z # my ($file) = @ARGV; my $twig= XML::Twig->new( PrettyPrint => 'record', twig_handlers => { time => \&time_fix } ); $twig->parsefile($file); #$twig->flush(); $twig->print(); exit(0); sub time_fix { my ($twig, $time_element) = @_; my $wrong_format = $time_element->text (); my $time = str2time($wrong_format); my $date = DateTime->from_epoch( epoch => $time); $date = $date . q(Z); $time_element->set_text ($date); }