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

编辑:如果您必须在一小时前获得这种格式,那么请改为:

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

如果这是一个时区问题,您可能需要考虑明确处理时区,而不是假设一个小时的偏移量。这是一篇关于在 Perl 中处理时区的文章。

于 2012-07-31T21:41:42.610 回答