代码之家  ›  专栏  ›  技术社区  ›  Mamga

Java LocalDate/LocalDateTime-小时之间

  •  -4
  • Mamga  · 技术社区  · 7 年前

    我怎么知道两个时间表之间是否有一个小时?

    例子:

    10:00 is between 8:00 and 12:00?
    7:30 is between 8:00 and 12:00?
    

    LocalDateTime s = LocalDateTime.of (2017, 10, 20, 8, 00);
    LocalDateTime f = LocalDateTime.of (2017, 10, 20, 12, 00);
    
    LocalDate test = LocalDate.of (2017, 10, 20, 10, 00); (<- Must be LocalDate)
    
    if ((test.isAfter (s)) && (test.isBefore (s))
       return true;
    else
       return false;
    

    它返回以下错误:

    (本地时间)

    3 回复  |  直到 7 年前
        1
  •  8
  •   assylias    7 年前

    如果你只对时间感兴趣,为什么要包括日期?

    LocalTime s = LocalTime.of (8, 0);
    LocalTime f = LocalTime.of (12, 0);
    
    LocalTime test = LocalTime.of (10, 0);
    
    if (test.isAfter (s) && test.isBefore (f))
    

    如果你收到 LocalDateTime ,您可以拨打 ldt.toLocalTime() .

        2
  •  0
  •   Joop Eggen    7 年前

    然后转到LocalDates;也许和 !after 而不是 before

    return test.isAfter(s.toLocalDate()) && test.isBefore(f.toLocalDate());
    
        3
  •  0
  •   Community Dai    7 年前

    你的问题是错误的,因为代码甚至都没有编译,但我想你正在你的 LocalDate 对象:

    • atStartOfDay() 转换为 本地日期 LocalDateTime 时间在 00:00

    • atTime(int hour, int minute) 转换为 本地日期 LocalDateTime 在规定的时间内