package Feed::FixDateTime; use Moose::Role; use 5.016; use namespace::autoclean; use DateTime; requires 'process_entry'; before process_entry => sub { my ($self,$entry) = @_; for my $f ('issued','modified') { my $date = $entry->$f; if (!$date) { $date = DateTime->from_epoch(epoch=>0); } if ($date && $date->time_zone->is_floating) { $date->set_time_zone('UTC'); } $entry->$f($date); } }; 1;