Time::Pieceを活用せよ
これまでは
perl -MTime::Piece -le '$t=localtime(); print $t' Fri May 20 10:50:18 2011|
みたいに、UnixtimeからTime::Pieceオブジェクトつくる方法しか知らなかったけど、perldoc調べたらstrptimeで文字列パースできるじゃん!
と思ったら、timezoneで見事にハマった。strptimeだとUTCになってしまうのでlocaltimeを考慮してあげる必要がある。
perl -MTime::Piece -le '$t=Time::Piece->strptime("2011/05/20", "%Y/%m/%d"); print $t; print $t->tzoffset' Fri May 20 00:00:00 2011 0
tzoffsetが0なので、UTCになってることが分かる。Time::PieceオブジェクトをさらにlocaltimeでラップしてあげればOK。
perl -MTime::Piece -le '$t=localtime(Time::Piece->strptime("2011/05/20", "%Y/%m/%d")); print $t; print $t->tzoffset' Fri May 20 00:00:00 2011 32400
これでJSTになった!