如何查看当前时间是否为夜晚

时间:2018-12-15 13:00:01

标签: android

考虑到冬季和夏季的时间变化,是否有任何服务可以检查当前时间是否为晚上? 例如,夏季的夜晚从当地时间19:45开始,而冬季则从16:45开始。

我的审判是:

Boolean isNight;
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
isNight = hour < 6 || hour > 18;

此代码仅在晚上从18:00开始开始,但是夜间会根据一年中的时间而更改时起作用。

2 个答案:

答案 0 :(得分:1)

您可以使用 sunrisesunset-lib 以及类似的方法 您的位置,您就能知道是不是晚上:

private boolean isNight(Location location) {
    SunriseSunsetCalculator calculator = new SunriseSunsetCalculator(location, TimeZone.getTimeZone("GMT+3:30"));
    Calendar now = Calendar.getInstance();
    Calendar officialSunrise = calculator.getOfficialSunriseCalendarForDate(now);
    Calendar officialSunset = calculator.getOfficialSunsetCalendarForDate(now);
    return !(now.after(officialSunrise) && now.before(officialSunset));
}

答案 1 :(得分:0)

再有一个代码对我有用

String time1 = "01:00:00";  
String time2 = "15:00:00";  
LocalTime time = LocalTime.parse(time2);  
if ((time.isAfter(LocalTime.of(20,11,13))) || (time.isBefore(LocalTime.of(14,49,0))))  
{  
    System.out.println("true");  
}  
else  
{  
    System.out.println("false");  
}