代码之家  ›  专栏  ›  技术社区  ›  Khalid Taha

如何检查当前时间是否为夜间

  •  0
  • Khalid Taha  · 技术社区  · 6 年前

    考虑到冬季和夏季时间的变化,是否有服务来检查当前时间是否为夜间? 例如,夏天的夜晚在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 回复  |  直到 6 年前
        1
  •  2
  •   alizeyn    6 年前

    你可以用这个 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));
    }
    
        2
  •  0
  •   Hitesh sapra    6 年前

    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");  
    }