0

我正在尝试找出过去 24 小时或 7 天或 30 天内在 Oracle 11g 数据库中更新的记录。我能够使用“java.util.Calendar”获得所需的功能

Date today = new Date();

Calendar cal = new GregorianCalendar();
cal.setTime(today);
//For last 7 days
cal.add(Calendar.DAY_OF_MONTH, -7);

但是我想知道是否有人使用Joda-Time API 做到了这一点?

4

1 回答 1

3

您需要准确定义“过去 24 小时”和“过去 7 天”的含义。你真的是指过去的 24 小时,还是“从昨天的同一个当地时间”?由于夏令时转换,后者可能意味着 23 小时或 25 小时。

如果您真的非常想要 24 小时和 7 * 24 小时,我会使用Instant

Instant now = new Instant();
Instant nowMinus24Hours = now.plus(Durations.standardHours(-24));
Instant nowMinus7Days = now.plus(Durations.standardDays(-7));

请注意,Instant它没有时区或日历的概念——它只是时间线上的一个点;它是用于时间戳等的适当数据类型。

于 2013-05-04T20:33:12.683 回答