我开发了一个在LocalDate()
中使用Joda Time API
的JavaFX应用程序。一天的默认开始和结束时间是00:00:00 - 23:59:59
。我想将其更改为08:00:00 - 07:59:59 (Following Day)
。
我在申请中用来计算昨天时间表的代码如下:
LocalDate now = new LocalDate();
LocalDate yesterday = now.minusDays(1);
此代码在2015-10-25 00:00:00
和2015-10-25 23:59:59
之间进行计算,但我希望它介于2015-10-25 08:00:00
和2015-10-26 07:59:59
之间。
我使用SQL尝试了这个并且它工作正常。
IF((NOW() > TIMESTAMP(CONCAT(CURDATE(), ' ', '00:00:00'))) AND (NOW() < TIMESTAMP(CONCAT(CURDATE(), ' ', '08:00:00'))),
(`created_date` >= TIMESTAMP(CONCAT(DATE(CURDATE() - 1), ' ', '08:00:00')) AND `created_date` < TIMESTAMP(CONCAT(DATE(CURDATE()), ' ', '08:00:00'))),
(`created_date` >= TIMESTAMP(CONCAT(CURDATE(), ' ', '08:00:00')) AND `created_date` < TIMESTAMP(CONCAT(DATE(CURDATE() + 1), ' ', '08:00:00'))))
查询是如何使用JodaTime API
实现此目的的?
答案 0 :(得分:0)
您可以实现以下逻辑:
代码:
LocalDateTime now = LocalDateTime.now();
LocalDateTime todayAt8 = now.withTime(8, 0, 0, 0);
LocalDateTime startDate = todayAt8.isBefore(now) ? todayAt8 : todayAt8.minusDays(1);
LocalDateTime endDate = startDate.plusDays(1).minusSeconds(1);