HTTP::Date

日付8桁(YYYYMMDD)フォーマットの文字列を、Cでいうtime_t*1に変換するのに、PerlではHTTP::Dateが使える。ダンコガイも推奨

use HTTP::Date;

$string = "20080301";
$time = str2time($string);
$time -= 60 * 60 * 24;

@a = localtime($time);

printf( "%4d%02d%02d\n", $a[5]+1900, $a[4]+1, $a[3]);

*1:時刻を表す型で、UNIXエポックと呼ばれる基準時間――1970年1月1日00:00:00(UTC)からの経過秒数で表現される時間。