Java 使用criteria API仅比较ZoneDateTIme中的小时
我有一个实体类Java 使用criteria API仅比较ZoneDateTIme中的小时,java,hibernate,criteria,Java,Hibernate,Criteria,我有一个实体类Order,它具有属性ZonedDateTime deliveryTime。我想提取所有交付时间在每天上午11点到下午2点之间的订单 builder.between(root.get(“deliveryDate”)、??、??)之间 我可以限制我的结果到日期界限,但我的目标是限制交付时间 有人能帮忙吗?您可以使用和: ZonedDateTime now = ZonedDateTime.now(); // 2017-04-18T14:54:38.567+01:00[Europe/D
Order
,它具有属性ZonedDateTime deliveryTime
。我想提取所有交付时间在每天上午11点到下午2点之间的订单
builder.between(root.get(“deliveryDate”)、??、??)之间
我可以限制我的结果到日期界限,但我的目标是限制交付时间
有人能帮忙吗?您可以使用和:
ZonedDateTime now = ZonedDateTime.now();
// 2017-04-18T14:54:38.567+01:00[Europe/Dublin]
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("ha");
LocalTime start = LocalTime.parse("11AM",timeFormatter);
LocalTime end = LocalTime.parse("2PM",timeFormatter);
System.out.println(now.toLocalTime().isAfter(start)); // true
System.out.println(now.toLocalTime().isBefore(end)); // false
我希望这有帮助 不需要DateTimeFormatter。只需使用LocalTime.of(11,0)
和LocalTime.of(14,0)
。但问题是,我无法在我的root.get(“deliveryDate”)
上调用方法toLocalTime()
,因为它不是ZonedDateTime.class
的实例,而是接口路径,这是另一回事