2010-03-15 23 views
0

使用DateTime::Astro::Sunrise的手冊頁中包含的示例代碼,我可以在日出時回到〜14:00,在日落時回到〜2:00。爲什麼Perl的DateTime :: Astro :: Sunrise會給我意想不到的值?

我的機器的時間和時區設置正確(AFAIK)。

我讀的是錯的嗎?早上2點和下午2點就是這麼粗暴地錯了。

use DateTime; 
use DateTime::Astro::Sunrise; 

my $dt = DateTime->new(year => 2010, 
           month => 3, 
           day => 15, 
         ); 
my $sunrise = DateTime::Astro::Sunrise ->new('-117','33',undef,1); 

my ($tmp_rise, $tmp_set) = $sunrise->sunrise($dt); 

printf "%s\n", $tmp_rise; 
printf "%s\n", $tmp_set; 
+2

需要更多的細節。你的緯度,經度,日期和時區是什麼......? – 2010-03-15 22:30:26

+0

緯度/長期/ TZ =洛杉磯 – BozoJoe 2010-03-15 23:31:35

+1

你在做錯事嗎?也許。我們怎麼能看出你在做什麼? :) – Ether 2010-03-15 23:38:21

回答

1

對不起,沒有任何示例代碼,我不能說你做錯了什麼。

替代方案Astro::Sunrise對我來說效果很好,似乎稍微成熟一點。

+1

很好....這兩個模塊的作者。切換到Astro :: Sunrise後取得成功 – BozoJoe 2010-03-15 23:46:36

2

有人猜測,你的經度上有錯誤的標誌,所以你得到了上海的日出/日落時間(現在是上午6點和下午6點),但是你得到了時間在加利福尼亞州時間太陽升起並落在上海,因爲那是您當地的時區。差異是16小時,所以你得到2PM和2AM。

相關問題