2017-02-21 10 views
0

Я использую следующий код, чтобы получить дату наступления воскресенья. Код работает на некоторых устройствах, но в некоторых устройствах он показывает воскресенье после наступления воскресенья. Пожалуйста помоги. почему он не работает на некоторых устройствах.андроид дата заезда ожидается воскресенье

try { 
      SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 

      Calendar c=Calendar.getInstance(); 
      c.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY); 
      c.set(Calendar.HOUR_OF_DAY,0); 
      c.set(Calendar.MINUTE,0); 
      c.set(Calendar.SECOND,0); 
      c.add(Calendar.DATE,7); 

      Date currentTime = c.getTime(); 
      date = dateFormat.format(currentTime); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
+0

На сегодняшний день, как понедельник 6 марта 2017 года, вы бы ожидать, что в ближайшее воскресенье будет 12-й или 19-й? – bornander

+0

Прибытие в воскресенье должно быть 12th – user1767260

+0

Тогда это зависит от того, в какой день вы думаете, что начинается неделя. Если неделя начнется в понедельник в приведенном выше примере, то установка «DAY_OF_WEEK» на «SUNDAY» установит ее на 12-е место, а затем добавит 7 дней, что даст вам 19-й. – bornander

ответ

0

Возможно, проблема в TimeZone?
попробовать это:

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("some time zone")); 
+0

Устройства с одинаковым часовым поясом дают разные даты – user1767260

0
private static Calendar getNextSundayDate() { 
     Calendar calendarForNextSunday = Calendar.getInstance(); 
     int today = calendarForNextSunday.get(Calendar.DAY_OF_WEEK); 
     //System.out.println("today" + today); 
     if (today != Calendar.SUNDAY) { 
      int offset = Calendar.SATURDAY - today + Calendar.SUNDAY; 
      //System.out.println("offset" + offset); 
      calendarForNextSunday.add(Calendar.DATE, offset); 
      //System.out.println("new" + calendarForNextSunday.get(Calendar.DAY_OF_WEEK)); 
      //System.out.println("next sunday" + calendarForNextSunday.get(Calendar.DATE)); 
     } 
     return calendarForNextSunday; 
    } 

Это может работать для вас

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

  • Нет связанных вопросов^_^