この回答からDateTime::Format::Strptime、文字列から日付を取得するために使用しています。
私は次のパターンを使用しています:%m%d%Y%n%T。これは一致している必要があります:
%m:月番号(01-12)。これにより、1桁の数値も解析されます。%d:月の日(01-31)。これにより、1桁の数値も解析されます。%Y:世紀を含む年(たとえば、1991年)。%n:任意の空白。%T:と同等%H:%M:%S:%H:時間(00-23)。これにより、1桁の数値も解析されます。%M:分(00-59)。これにより、1桁の数値も解析されます。%S:秒(0〜60、うるう秒の場合は60が発生する可能性があります。を参照DateTime::LeapSecond)。
ただし、入力時:[ 05/18/2011 14:14:05]次のエラーで失敗します:
日時がパターンと一致していません
私が見る限り、私のパターンは入力パターンと一致しています。どこが間違っているのですか?
関連するコードは以下のとおりです。
use DateTime::Format::Strptime qw( );
my $format = DateTime::Format::Strptime->new(
pattern => '%m%d%Y%n%T',
time_zone => 'local',
on_error => 'croak',
);
my $dt = $fields->[1] ;
print "Date:[$dt]\n";
my $dateopen = $format->parse_datetime($dt);
出力:
日付:[2011年5月18日14:14:05]
日時がパターンと一致しません