この回答から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]
日時がパターンと一致しません