简体   繁体   中英

Sunrise and Sunset Calculator

I am trying to get Sunrise and Sunset time for Phoenix.

I am using : https://github.com/mikereedell/sunrisesunsetlib-java

    package sunriseSunsetCalculator;

    import java.io.IOException;
    import java.util.Calendar;
    import java.util.Date;

    import com.luckycatlabs.sunrisesunset.SunriseSunsetCalculator;
    import com.luckycatlabs.sunrisesunset.dto.Location;

    public class getSunriseSunet 
    {
        public static void main (String[] args) throws IOException 
        {
            Location location = new Location("33.4500", "-112.0667");
            SunriseSunsetCalculator calculator = new SunriseSunsetCalculator(location, "Phoenix");

            Date today = Calendar.getInstance().getTime();

            String officialSunrise = calculator.getOfficialSunriseForDate(Calendar.getInstance());
            String officialSunset = calculator.getOfficialSunriseForDate(Calendar.getInstance());

            System.out.println(today + " officialSunrise : " + officialSunrise);
            System.out.println(today + " officialSunset  : " + officialSunset);
        }
    }

output

Sat Mar 14 21:35:51 MST 2015 officialSunrise : 13:39

Sat Mar 14 21:35:51 MST 2015 officialSunset : 13:39

Any suggestion why the Sunrise and Sunset time are incorrect ?

对于日落时间,请调用getOfficialSunsetForDate(Calendar.getInstance());

I am not sure if your timeZoneIdentifier for Phoenix is correct. Could you please change it to: America/Phoenix

Also you Calendar should be created in the correct time zone:

SunriseSunsetCalculator calculator = new SunriseSunsetCalculator(lcation, "US/Phoenix");
Calendar today = new GregorianCalendar(TimeZone.getTimeZone("US/Phoenix"));
String sunrise = calculator.getOfficialSunriseForDate(today);
String sunset  = calculator.getOfficialSunsetForDate(today);
package sunriseSunsetCalculator;

import java.io.IOException;
import java.util.Calendar;
import java.util.Date;

import java.util.GregorianCalendar;
import java.util.TimeZone;

import com.luckycatlabs.sunrisesunset.SunriseSunsetCalculator;
import com.luckycatlabs.sunrisesunset.dto.Location;

    public class getSunriseSunet 
    {
        public static void main (String[] args) throws IOException 
        {
            Location location = new Location("33.4500", "-112.0667");

            SunriseSunsetCalculator calculator = new SunriseSunsetCalculator(location, "US/Arizona");
            Calendar today = new GregorianCalendar(TimeZone.getTimeZone("US/Arizona"));

            String officialSunrise = calculator.getOfficialSunriseForDate(today);
            String officialSunset = calculator.getOfficialSunsetForDate(today);

            System.out.println(" officialSunrise : " + officialSunrise);
            System.out.println(" officialSunset  : " + officialSunset);

        }
    }

Get Time Zones from : http://tutorials.jenkov.com/java-date-time/java-util-timezone.html

Output:

officialSunrise : 06:39

officialSunset : 18:36

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM