为什么Perl的DateTime :: Astro :: Sunrise给了我意想不到的价值?

时间:2010-03-15 22:24:44

标签: perl

使用DateTime::Astro::Sunrise手册页中包含的示例代码,我回来了〜14:00的日出和~2:00的日落。

我的机器的时间和时区设置正确(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 个答案:

答案 0 :(得分:2)

猜测,你的经度上有错误的标志,所以你得到了上海的日出/日落时间(现在是上海时间早上6点和下午6点),但你得到了时间在加利福尼亚时间太阳升起并落在上海,因为那是你当地的时区。差异是16小时,所以你得到2PM和2AM。

答案 1 :(得分:1)

对不起,没有任何示例代码,我不能说你做错了什么。

另一种选择,Astro::Sunrise对我来说效果很好,而且似乎稍微成熟了。