Google Analytics

2010-01-22

TwitterのStreaming APIにおける日時表現の解析について

目的

DateTimeが便利なので、DateTime::Format::*で、Streaming APIで流れてくる、こういう表記 "Fri Jan 22 13:52:17 +0000 2010" を上手くパースしたい。

この表記方法は、古き良き時代を感じさせるctime()に由来するものであるとのこと。日付の表記に関するノート

現状

DateTime::Format::HTTP, DateTime::Format::Mail は失敗。
ただし、+0000をUTCとかGMTに置換すればDateTime::Format::HTTPでOK

DateTime::Format::DateParse は成功。これを使うべき。

DateTime::Format::Strptime で自作しても可(DIY派専用)

コード片

use DateTime::Format::DateParse;
my $dt = DateTime::Format::DateParse->parse_datetime('Fri Jan 22 13:52:17 +0000 2010');

use DateTime::Format::Strptime;
my $formatter = DateTime::Format::Strptime->new(
    pattern => '%a %b %d %T %z %Y',
    locale => 'en_US',
);
my $dt = $formatter->parse_datetime('Fri Jan 22 13:52:17 +0000 2010');

0 コメント:

コメントを投稿