2016-04-27 3 views
1

Я пытаюсь получить «неделю года», поэтому вопрос в основном заключается в том, что я использую этот код для получения недели года, но это дает мне неправильную неделю. например, сегодня 27/04/16, поэтому этот код приносит мне 18, но я ищу онлайн, а настоящая неделя - 17. Что мне нужно изменить в моем коде, чтобы получить неделю 17?получить WEEK_OF_YEAR в ISO 8601

Я стараюсь это ..

Calendar calendar = new GregorianCalendar(); 
    calendar.setTime(new Date()); 
    weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR); 

И это.

Calendar calendar = Calendar.getInstance() 
    calendar.setTime(new Date()); 
    weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR); 

В Википедии https://en.wikipedia.org/wiki/ISO_week_date#First_week

апреля у этой недели 14 до 17 18 мая по 22

Этот код в Java 7 Android. Помогите мне. Пожалуйста.

Благодаря

+0

Это просто из-за различий в вашем часовом поясе с часовым поясом по умолчанию в календаре. Установите часовой пояс календаря на свой. – Pehlaj

+0

Это дает мне 17, вы пытаетесь это с помощью реального устройства? – Nirekin

+0

Да, это в реальном устройстве – exequielc

ответ

1

Итак, ответ использовать немецкий Locale, чтобы получить Неделю 17 года. В ISO8901.

Calendar calDe = Calendar.getInstance(Locale.GERMAN); 
calDe.setTime(new Date()); 
weekOfYear = calDe.get(Calendar.WEEK_OF_YEAR);