Это действительно сводит меня с ума. Код нижеJodaTime всегда будет сменяться до 2015 года, если с установленным временем года 2016
DateTime dt = new DateTime()
.withYear(2014)
.withWeekOfWeekyear(52)
.withDayOfWeek(1);
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("d MMM yyyy");
String firstDayOfWeek = dateTimeFormatter.print(dt);
Log.v(FILE_NAME,"display date? " + firstDayOfWeek);
dt = new DateTime()
.withYear(2015)
.withWeekOfWeekyear(52)
.withDayOfWeek(1);
String lastDayOfWeek = dateTimeFormatter.print(dt);
Log.v(FILE_NAME,"display date? " + lastDayOfWeek);
dt = new DateTime()
.withYear(2016)
.withWeekOfWeekyear(52)
.withDayOfWeek(1);
lastDayOfWeek = dateTimeFormatter.print(dt);
Log.v(FILE_NAME,"display date? " + lastDayOfWeek);
Как-то всегда выход:
display date? 22 Dec 2014
display date? 21 Dec 2015
display date? 21 Dec 2015
Как вы можете видеть, дата последнего дисплей должен показывать 2016, а не 2015. Кажется, что каждый раз я поставил withYear в 2016 году, это будет Волшебное изменение до 2015 года. Является ли это ошибкой или я делаю что-то неправильно? Я много раз очищал и перестраивал проект, но результат тот же.
Возможно, попробуйте назначить строку новой строке? Я вижу, что вы используете переменную lastDayOfWeek дважды ... может быть, проблема? – riggaroo
@riggaroo спасибо. уже сделал это, но все равно то же самое – imin