#!/usr/bin/perl use strict; use warnings; use Error qw(:try); use DateTime::Format::ISO8601::ParseDateTag; my $parser = DateTime::Format::ISO8601::ParseDateTag->new; my @test = ( "1811-12-03T12:23 composed", "2003", "2003-12", "2005 permièred", "2005 first releaded", "2005 first releaded", "1811-12-03/12-06", "1811-12-03/12-12-06", "1811-12-03T12:23/23:12 composed", "1811-12-03T12:23/2003 composed", "1811-12-03/2003 composed", ); foreach my $t (@test) { print $t . " ### "; try { print $parser->parse($t) . "\n"; } catch Error with { print "Error: $@" }; } ## incorrect # $parser->parse("1811-12-03T12:23/2003 composed"); # $parser->parse("1811-12-03T12:23/2003"); ## correct # $parser->parse("1811-12-03T12:23 composed"); # $parser->parse("2003"); # $parser->parse("2003-12"); # $parser->parse("2005 permièred"); # $parser->parse("2005 first releaded"); # $parser->parse("2005 first releaded"); # $parser->parse("1811-12-03/12-06"); # $parser->parse("1811-12-03/12-12-06"); # $parser->parse("1811-12-03T12:23/23:12 composed");