Я пытаюсь получить номер текущей недели с JodaTime.
Во Франции недели определяются следующим образом:
- Неделя начинается с Понедельник (в то время как недели начинаются с Sunday в США).
- Первая неделя года - это неделя, которая содержит 4 января (в то время как ИМО, это неделя, которая содержит 1 января в США. Правильно? Я это подтвердил здесь).
Пример: 1 января 2012 года - воскресенье. Следовательно,
- Согласно французскому календарю, он относится к неделе 52 2011.
- Согласно календарю США, он относится к неделе 1 2012
С JodaTime я обнаружил, что могу получить номер недели со следующим методом DateTime#getWeekOfWeekyear()
.
Я думал, что, указав правильный TimeZone, я бы получил локализованный результат:
DateTime dtFr = new DateTime(2012, 1, 1, 11,11, DateTimeZone.forTimeZone(TimeZone.getTimeZone("Europe/Paris")));
DateTime dtUS = new DateTime(2012, 1, 1, 11,11, DateTimeZone.forTimeZone(TimeZone.getTimeZone("US/Arizona")));
LOGGER.info("weekYear (FR) : " + dtFr.weekyear().get());
LOGGER.info("weekOfWeekYear (FR) : " + dtFr.getWeekOfWeekyear());
LOGGER.info("weekYear (US) : " + dtUS.weekyear().get());
LOGGER.info("weekOfWeekYear (US) : " + dtUS.getWeekOfWeekyear());
Вывод:
2014-03-05 11:28:08,708 - INFO - c.g.s.u.JodaTest - weekYear (FR) : 2011
2014-03-05 11:28:08,709 - INFO - c.g.s.u.JodaTest - weekOfWeekYear (FR) : 52
2014-03-05 11:28:08,709 - INFO - c.g.s.u.JodaTest - weekYear (US) : 2011
2014-03-05 11:28:08,709 - INFO - c.g.s.u.JodaTest - weekOfWeekYear (US) : 52
Я ожидал:
- weekYear (US): 2012
- weekOfWeekYear (US): 1
Что-то не так в моем коде?