ヽ(´・肉・`)ノログ

How do we fighting without fighting?

TimexでTwitterの時間表現をパースする

twitterの時間表現 Wed Aug 27 13:08:45 +0000 2008 というのは, ISOやRFCで定義されているような標準的な表現形式ではないのかもしれない (合致するものをみつけられなかった).

古いバージョンの bitwalker/timex では =”{UNIX}”= という形式でtwitterの時間表現を解析できていたのだが, バージョンアップに伴いパーサーが厳密になり,解析できなくなったようだ.いいことだ.

現在のTimex(1.0.0)でTwitterの時間表現を解析するには =”{WDshort} {Mshort} {D} {ISOtime} {Z} {YYYY}”= で行える.

Timex.DateFormat.parse!("Wed Aug 27 13:08:45 +0000 2008", "{WDshort} {Mshort} {D} {ISOtime} {Z} {YYYY}")
# => %Timex.DateTime{calendar: :gregorian, day: 27, hour: 13, minute: 8, month: 8, ms: 0, second: 45,
#                    timezone: %Timex.TimezoneInfo{abbreviation: "UTC", from: :min, full_name: "UTC", offset_std: 0, offset_utc: 0, until: :max}, year: 2008}

表現を解析している第二引数の表現の意味はTimexのドキュメント Timex.Format.DateTime.Formatters.Default に書いてある.

このエントリーをはてなブックマークに追加