2015-11-09 2 views
0

Я пытаюсь получить номер недели в месяц .. на самом деле сегодня является второй неделе в ноябре, но я получаю это как 3Неправильные данные возвращаются из каландра

код, я использую

Log.e("dfhkdjfk", Calendar.getInstance().get(Calendar.WEEK_OF_MONTH)+""); 

, пожалуйста, помогите мне разобраться.

Reference Time:

3:45 AM 
Monday, November 9, 2015 
Coordinated Universal Time (UTC) 
+1

Вы можете написать код для 'getFragMonth()'? – pRaNaY

ответ

1

Неправильно.

Для какой-либо страны, такой как Франция, где понедельник является первым днем ​​недели, сегодня действительно первый день третьей недели ноября, поскольку первое из ноябрь было в воскресенье (так что первая неделя ноября имела один день ...).

Вы можете использовать DAY_OF_WEEK_IN_MONTH, который дает вам количество времени, которое уже произошло с начала текущего месяца.

В противном случае проверьте, какой день считается первой неделей, и реализуйте некоторую логику, чтобы адаптировать ее к вашим потребностям.

0

Вы должны попробовать ниже код с TimeZone, которые дают правильные Calendar.WEEK_OF_MONTH

Calendar calUs = Calendar.getInstance(TimeZone.getTimeZone("US/Eastern"), Locale.US); 
    int weekOfMonthUs = calUs.get(Calendar.WEEK_OF_MONTH); 
    System.out.println("Week of month is " + weekOfMonthUs); 

O/P

enter image description here

0

неделя месяц неделя в течение текущего месяца, начиная с воскресенья на то, как было много недель. WEEK_OF_MONTH зависит от первого дня недели. Не все календари имеют воскресенье в начале недели. Например: Франция имеет понедельник в первый день недели. Итак, перед тем, как войти в эту проверку locale телефона.

Смежные вопросы