2010-07-30 43 views
0

下面的代码:日期::神秘的iCal(小时不返回正确的值

$ical = Date::ICal->new(year => 1964, month => 10, day => 16, 
          hour => 20, min => 12, sec => 47, 
          #tz => '0530' 
         ); 

ok(defined $ical,   'new() returned something'); 
ok($ical->isa('Date::ICal'), " and it's the right class"); 

is($ical->sec,  47,  ' sec()' ); 
is($ical->min,  12,  ' min()' );  
is($ical->hour, 20,  ' hour()' ); 
is($ical->day,  16,  ' day()' ); 
is($ical->month, 10,  ' month()'); 
is($ical->year, 1964,  ' year()' ); 

print "hour = " . $ical->hour . "\n"; 

和这里的输出:

1..8 
ok 1 - new() returned something 
ok 2 - and it's the right class 
ok 3 - sec() 
ok 4 - min() 
not ok 5 - hour() 
# Failed test ' hour()' 
# at ./test_more.pl line 17. 
#   got: '0' 
#  expected: '20' 
not ok 6 - day() 
# Failed test ' day()' 
# at ./test_more.pl line 18. 
#   got: '17' 
#  expected: '16' 
ok 7 - month() 
ok 8 - year() 
hour = 0 
# Looks like you failed 2 tests of 8. 

什么给????

回答

1

是它是一个时区问题?你是否恰好落后UTC 4小时?

+0

我实际上是5个小时的落后,但是如果没有指定,我不应该在我的tz中获得小时数吗?(这就是为什么注释掉了tz属性) – ennuikiller 2010-07-30 23:29:27

+0

自10/16/1964起UTC时间4小时后? – mob 2010-07-30 23:34:03

+0

好问题,是的,其实我猜我是...... – ennuikiller 2010-07-30 23:35:27