samasuya回答ポイント 60ptウォッチ

perlのDate::Simpleのformatを使うと時間がUTC(GMT?)になってしまうのですが、これを回避する方法はありますか?


redhat linux 上のperl5.8.0で下記のようなコードを動かすと

use utf8;
use Date::Simple;

print $Date::Simple::VERSION."\n";

$ENV{'TZ'}= "JST-9";
print "$ENV{'TZ'}\n";

print "1st time is ".localtime()."\n";
my $date = Date::Simple->new();
print "2nd time is ".localtime()."\n";
my $formated_date = $date->format('%Y年%m月%d日') ;
$ENV{'TZ'}= "JST-9";
print "3rd time is ".localtime()."\n";

結果が、

3.02
JST-9
1st time is Mon Apr 5 10:33:13 2010
2nd time is Mon Apr 5 10:33:13 2010
3rd time is Mon Apr 5 01:33:13 2010

な感じで、9時間戻ってしまうのですが、これを回避する方法ありますか?
Date::Simpleは、print $Date::Simple::VERSION."\n"; したところ、3.02 でした。

「 my $formated_date = $date->format('%Y年%m月%d日') ;」

処理以後のタイムゾーンが変更になってしまうので、期間チェックの処理がおかしくなります。
タイムゾーンを再び日本時間JSTに戻すのはどうしたらよいのでしょうか?

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

みんなの回答

この質問へのコメント

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2010-04-05 10:35:28
終了日時
2010-04-12 06:36:25
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

Linux2257RedHat176UTC28Perl1679タイムゾーン25JST46GMT33

人気の質問

メニュー

PC版