стандартная реализация Java DateBuilder?

Я хотел бы знать, существует ли "стандартная" Java-реализация DateBuilder, прежде чем я создам ее сам. Я просмотрел java API и Apache Commons и не могу найти ссылку на него.

Я ищу что-то простое, что бы реализовало интерфейс вроде:

Date date = new DateBuilder().month(2).year(1).build();

где date будет 12 июля 2010 г. (при условии, что сегодня 12 мая).

Также, пожалуйста, никаких ссылок на Joda Time.


person Community    schedule 12.05.2009    source источник
comment
lol @ нет отсылок к Joda Time, хорошо сыграно. (Это был бы и мой первый ответ.) Я сам не видел никаких DateBuilders, но решил, что не должен публиковать отсутствие ответа, поэтому вместо этого я комментирую отсутствие ответа. :-П   -  person Chris Jester-Young    schedule 12.05.2009
comment
Это все еще считается, если в вопросе есть ссылка на Joda Time? Я думаю, что да.   -  person Michael Myers    schedule 12.05.2009
comment
@mmyers: Не уверен, что правильно понял ваш комментарий ... если OP не хочет иметь время Joda, на самом деле нет другого способа запросить это, кроме как сославшись на время Joda. Поэтому, пожалуйста, никаких ссылок на Joda Time не относится к самому вопросу. :-П   -  person Chris Jester-Young    schedule 12.05.2009
comment
Также, пожалуйста, никаких ссылок на Joda Time. ---> почему бы и нет?   -  person dfa    schedule 12.05.2009
comment
@dfa: Потому что, насколько я знаю, у него нет совместимого API с исходными классами Date/Calendar, а это означает, что если бы у вас были интерфейсы, которые использовали последний, вам также пришлось бы изменить все это. Это невозможно в зрелом проекте. Хотя хотелось бы, чтобы меня поправили.   -  person Chris Jester-Young    schedule 12.05.2009
comment
Поскольку моя потребность в манипулировании датами - это не более, чем простой строитель, и я не хочу добавлять еще одну библиотеку для того, что на практике будет простой оберткой (ответ а-ля Мэтт Б). Я только что (очевидно, ошибочно) предположил, что эта простая функциональность уже существует.   -  person    schedule 12.05.2009
comment
вы можете построить свою дату с помощью jodatime.. затем просто позвоните toDate()   -  person dfa    schedule 12.05.2009
comment
нет, класса stardard нет... Класс даты Java stardard не работает. Jodatime — это крошечная библиотека, широко протестированная, это не контейнер EJB :)   -  person dfa    schedule 12.05.2009
comment
@Chris Jester-Young: Я имею в виду, что count для целей каждого вопроса о дате / времени Java должен иметь ссылку на Joda Time. Я вижу, что об этом также упоминается в удаленном ответе, так что между ними это должно учитываться. отмечает квадрат на SO Bingo   -  person Michael Myers    schedule 12.05.2009


Ответы (3)


Нет, но вы можете сделать то же самое (только не в одной строке/вызовах цепочек методов) с объектом Calendar:

//assuming your use case is "add 1 year and 2 months to the current date/time"
Calendar cal = Calendar.getInstance()
cal.clear();
cal.add(Calendar.MONTH, 2);
cal.add(Calendar.YEAR, 1);

Должно быть тривиально обернуть Calendar.add() и Calendar.set() в шаблон Builder.

person matt b    schedule 12.05.2009
comment
Я предполагаю, что это именно то, что планировал сделать ОП, если нет стандартных библиотек, обеспечивающих эквивалентную функциональность. (Другими словами, это не ответ, ИМО.) - person Chris Jester-Young; 12.05.2009
comment
Да, я чувствовал, что Nope был слишком коротким :) - person matt b; 12.05.2009

Поиск кода Google показывает это

Любое использование?

person The Archetypal Paul    schedule 12.05.2009
comment
Jitterbit не совсем стандартная библиотека, не так ли? Хорошая попытка, хотя. - person Chris Jester-Young; 12.05.2009
comment
Согласен, но тогда ответ нет, я думаю. Но, по крайней мере, теперь у ОП есть способ получить реализацию :) - person The Archetypal Paul; 12.05.2009

Вы можете дождаться JSR-310. Это будет стандартом в будущем, когда он будет реализован!

person Karl the Pagan    schedule 13.05.2009