Я работал над поиском даты первой недели года, и я нашел очень странное поведение.
Я протестировал следующий фрагмент кода как в консольном приложении Java, так и в эмуляторе Android, и он производит разные выходные данные.
Calendar cal = Calendar.getInstance();
cal.set(Calendar.WEEK_OF_YEAR, 1);
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
System.out.println(sdf.format(cal.getTime()));
Произведен результат:
Android log cat: 2012/09/17 (неверно)
Java-консоль: 2012/01/01 (правильно)
И странно, если бы я использовал следующий код, как в Android, так и в Java, он производит одинаковый корректный вывод. Единственное различие заключалось в том, что я поменял 2-ю и 3-ю строки по указанному выше коду.
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
cal.set(Calendar.WEEK_OF_YEAR, 1);
System.out.println(sdf.format(cal.getTime()));
Android log cat: 2012/01/01 (правильный)
Java-консоль: 2012/01/01 (правильно)
Мне очень любопытно узнать об этом.
Спасибо заранее.