使用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;
答案 0 :(得分:2)
猜测,你的经度上有错误的标志,所以你得到了上海的日出/日落时间(现在是上海时间早上6点和下午6点),但你得到了时间在加利福尼亚时间太阳升起并落在上海,因为那是你当地的时区。差异是16小时,所以你得到2PM和2AM。
答案 1 :(得分:1)
对不起,没有任何示例代码,我不能说你做错了什么。
另一种选择,Astro::Sunrise对我来说效果很好,而且似乎稍微成熟了。