2009-05-07 5 views
12

Я хотел бы узнать дату понедельника в ИСО 1-й год этого года (для 2009 года это будет понедельник, 29 декабря 2008 г.).Joda-time: первый день в ISO-неделе этого года 1

Я уверен, что joda-time может справиться с этим, но я просто не могу понять API (возможно, это слишком поздно).

Может ли кто-нибудь помочь? Благодаря!

ответ

11

Я считаю, что это должно работать:

DateMidnight date = new DateMidnight().withWeekOfWeekyear(1).withDayOfWeek(1); 
+0

Спасибо, Блейк! Именно то, что я искал. Для архива «withWeekOfWeekYear()» должно быть записано «withWeekOfWeekyear()» (нижний регистр y). –

+3

** ПРИМЕЧАНИЕ: ** Этот ответ использует классы и методы *, которые больше не рекомендуются * командой Joda-Time. См. [Правильный ответ shaILU] (http://stackoverflow.com/a/22334471/642706). Чтобы процитировать [Примечания к выпуску] (http://www.joda.org/joda-time/upgradeto230.html): 'DateMidnight ... Этот класс ошибочен в концепции ... Замените ... с помощью LocalDate ... [или] DateTime ... [using] ... withTimeAtStartOfDay() способ'. ([LocalDate] (http://www.joda.org/joda-time/apidocs/org/joda/time/LocalDate.html) или [DateTime.withTimeAtStartOfDay()] (http://www.joda.org/ joda-time/apidocs/org/joda/time/DateTime.html # withTimeAtStartOfDay())) –

18

DateMidnight API упоминается в другой ответ теперь не рекомендуется использовать ниже:

DateTime date = new DateTime().dayOfYear().withMinimumValue().withTimeAtStartOfDay(); 
Смежные вопросы