Я работаю над Java-компонентом, который помечает события окном даты для агрегирования метрик по дням, неделям, месяцам и т. Д.
Отображение даты в ее совокупную категорию является простым - просто отформатируйте String
, используя соответствующий шаблон для нужного окна. Например, дата может быть сопоставлена с агрегацией на уровне месяца с шаблоном Formatter
"%1$04tY-%1$02tm"
(т.е. YYYY-MM
).
Моя проблема заключается в обратном сопоставлении окна с его ограничивающими датами, например, от совокупного месяца 2012-02
до его ограничивающих дат 2012-02-01
и 2012-03-01
(с использованием полуоткрытых интервалов). Мне нужно это, чтобы эффективно пометить целые промежутки дат в моем хранилище данных (MongoDB) одним оператором (в этом примере для ясности пропущен ISODate(…)
):
db['events'].update(
{eventDate: {$gte: "2012-02-01", $lt: "2012-03-01"},
{$set: {month: "2012-02"}
);
Я столкнулся с Joda-Time и подозреваю, что его Partial
API может поддерживать эту функцию. Я пытаюсь научить себя, но кто-нибудь уже знает, как это сделать?