我有实体类Order
,其属性为ZonedDateTime deliveryTime
。我想提取所有订单,交货时间是每天上午11点到下午2点之间。
builder.between(root.<ZonedDateTime>get("deliveryDate"), ??????, ????)
我可以将结果限制在日期边界,但我的目标是限制交货时间
有人可以帮忙吗?
答案 0 :(得分:0)
您可以使用LocalTime#isAfter和LocalTime#isBefore:
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
我希望这会有所帮助。