ログ格納をSQLiteでやろうとするとctimeをTIMESTAMP型にして勝手に格納されるようにすると便利なんですけれどもこれはMySQLのTIMESTAMPと同じ書式で格納されて、当然ながらタイムゾーンがUTCになっています。 つうわけで、これを日本時間にして取り扱う戦略としては、DateTime::Format::MySQLを使うといいなーていうのが1点目。 次に、DateTime::Formatでは、生成したオブジェクトにタイムゾーン指定しないと、勝手に'UTC'になるなんてことはなく、曖昧なままのよう。だから、一度明示的に $dt->set_time_zone ( 'UTC' ); でタイムゾーンをUTCに指定してあげないと、時刻を正確に示しているオブジェクトにはならないっていう点が2点目。 use DateTime::Format::MySQL; my $timestamp =