— |
our %MONMAP = (
Jan => 1,
Feb => 2,
Mar => 3,
Apr => 4,
May => 5,
Jun => 6,
Jul => 7,
Aug => 8,
Sep => 9,
Oct => 10,
Nov => 11,
Dec => 12,
);
sub new_from_string {
my $class = shift ;
my $base_date = shift ;
if (
$base_date =~ /\w{3}\s+(\w+)\s+(\d+)\s+(\d\d):(\d\d):(\d\d)\s+(\d{4})/ )
{
my $mon = $1;
my $dom = $2;
my $h = $3;
my $m = $4;
my $s = $5;
my $y = $6;
my $date = $class ->new(
year => $y ,
month => $MONMAP { $mon },
day => $dom ,
hour => $h ,
minute => $m ,
second => $s ,
time_zone => 'US/Pacific' ,
);
$date ->set_time_zone( 'UTC' );
return $date ;
}
elsif ( $base_date =~ /(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z/ )
{
return $class ->new(
year => $1,
month => $2,
day => $3,
hour => $4,
minute => $5,
second => $6,
time_zone => 'UTC' ,
);
}
}
no Any::Moose;
1;
|