2015-08-11 2 views
0

Я работаю над Android-приложением, где мне нужно отображать дни недели из календаря. Могу ли я это сделать с помощью API календаря? или есть библиотека, которую я могу использовать? Дни недели на Android

+0

Отображать дни недели, такие как? Получение даты и отображение дня недели? –

+0

См. Аналогичный вопрос, [Samsung J7 возвращается в первый день недели как 2] (http://stackoverflow.com/q/40041147/642706). –

+0

Это похоже на дубликат: [(Android) Получить первый день недели] (http://stackoverflow.com/q/25091904/642706) –

ответ

0

Для обработки даты в Android я рекомендую 310ABP, порт API-интерфейсов новой версии Java 8 для Android.

0

Используйте объект Calendar, чтобы все было сделано.

0

Вы можете использовать библиотеку JodaTime для отображения текущего дня недели.

LocalDate newDate = new LocalDate(); 
int dayOfWeek = newDate.getDayOfWeek(); 
0

или есть библиотека, которая может использовать?

Да. Используйте обратный порт классов java.time. См. Пункт «Android» ниже.

Использование java.time

LocalDate

LocalDate класс представляет собой дату только значение без времени суток и без временной зоны.

Часовой пояс имеет решающее значение для определения даты. В любой данный момент дата изменяется по всему миру по зонам. Например, через несколько минут после полуночи в Paris France - это новый день, пока еще «вчера» в Montréal Québec.

Указать proper time zone name в формате continent/region, такие как America/Montreal, Africa/Casablanca или Pacific/Auckland. Никогда не используйте аббревиатуру 3-4 буквы, такую ​​как EST или IST, так как они не настоящие часовые пояса, не стандартизированные, и даже не уникальные (!).

ZoneId z = ZoneId.of("America/Montreal"); 
LocalDate today = LocalDate.now(z); 

TemporalAdjuster

Чтобы получить первый день недели, (а) решить, что это первый день недели для вас, (б) использовать TemporalAdjuster реализации, определенную в TemporalAdjusters, чтобы получить дату для конкретного объекта перечисления [] [6].

LocalDate ld = today.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY)) ; 

Чтобы получить недельные даты, добавьте день за раз.

LocalDate localDate = ld ; // Initialize our looping variable. 
List<LocalDate> dates = new ArrayList<>(7) ; 
for(int i = 0 , i < 7 , i ++) { // Loop seven times, to cover a week. 
    localDate = localDate.plusDays(i); 
    dates.add(localDate) ; 
} 

О java.time

java.time каркас встроен в Java 8 и более поздних версий. Эти классы вытесняют неприятные старые legacy классы времени, такие как java.util.Date, Calendar, & SimpleDateFormat.

Проект Joda-Time, в настоящее время в maintenance mode, советует перейти на классы java.time.

Чтобы узнать больше, см. Oracle Tutorial. И поиск Stack Overflow для многих примеров и объяснений. Спецификация: JSR 310.

Где получить классы java.time?

  • Java SE 8, Java SE 9, а затем
    • Встроенный.
    • Часть стандартного Java API с объединенной реализацией.
    • Java 9 добавляет некоторые незначительные функции и исправления.
  • Java SE 6 и Java SE 7
    • Большая часть функциональности java.time будет обратно портирован на Java 6 & 7 в ThreeTen-Backport.
  • Android
Смежные вопросы