2012-07-31 38 views
0

我需要轉換我的TCL腳本Perl中,我知道的Perl位,但沒有多少:轉換TCL以Perl來格式化日期時間

我需要這條線轉換到perl:

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

它打印當前日期和1小時後(由於服務器返回EST,我想CST)。

例如,如果今天的日期是07月31日,時間爲下午4:20(下午5:20 EST),將打印

2012-07-31 16

服務器返回東部時間,因此我希望它在1小時前打印以適應中央時間。 注意:它不應該打印16:20。

+0

這條線做什麼? – Cfreak 2012-07-31 21:25:10

+0

@Cfreak它將'current'變量設置爲一個小時前的「year-month-day hour」的字符串。 – 2012-07-31 21:35:11

+0

[你有什麼嘗試?](http://whathaveyoutried.com) – 2012-07-31 21:51:18

回答

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 

而且如果它是一個時區的問題,你可能要考慮明確處理時區,而不是假設一個小時的偏移量。這是一個article on handling time zones in Perl

+0

@ Qsario.Sorry,由於服務器返回EASTERN時間,它打印17,但我希望它打印16根據CST – Micheal 2012-07-31 21:46:51

+0

謝謝Qsario。那就是我需要的 – Micheal 2012-07-31 21:53:25