0

TCL スクリプトを perl に変換する必要があります。perl については少し知っていますが、あまり詳しくありません。

この行を perl に変換する必要がありました。

set current [clock format [clock scan "1 hour ago" -base [clock seconds]] -format "%Y-%m-%d %H"]

現在の日付と1時間遅れて表示されます(サーバーがESTを返すので、CSTが必要です)。

たとえば、今日の日付が 2012 年 7 月 31 日で、時刻が午後 4 時 20 分 (東部標準時午後 5 時 20 分) の場合、次のように出力されます。

2012-07-31 16

サーバーは東部時間を返すため、中央時間に合わせて 1 時間前に出力するようにします。注 : 16:20 と表示されるべきではありません。

4

1 に答える 1

3

これを試して:

use POSIX qw/strftime/;

print strftime('%Y-%m-%d %H', localtime);
# prints 2012-07-31 14 for me, currently

編集: 1 時間前にこの形式を取得する必要がある場合は、代わりに次のようにします。

use POSIX qw/strftime/;

my $hour_ago = time() - (60*60);
print strftime('%Y-%m-%d %H', localtime($hour_ago));
# prints 2012-07-31 13 for me, currently

また、タイム ゾーンの問題である場合は、1 時間のオフセットを想定するのではなく、タイム ゾーンを明示的に処理することを検討してください。Perl でのタイム ゾーンの処理に関する記事を次に示します。

于 2012-07-31T21:41:42.610 に答える