2017-09-08 1 views
0

J'ai besoin de regrouper les moments passés ensemble comme 14h10, devrait venir 14:30 dans le groupe 14h00-15h00. Je reçois toutes les fois au format aaaa-MM-jj'H'HH: mm: ss.SSS + 00: 00. Comment regrouper l'heure ensemble au format 14:10 PM?Comment regrouper les éléments de Arraylist de temps à HashMap à Kotlin?

Actuellement, je les ai convertis en format hh: mm aa et j'ai obtenu la liste, Comment les regrouper dans Arraylists et enfin les stocker dans la carte, Pour que je puisse lister les temps dans Recyclerview?

Répondre

1

Essayez quelque chose comme ça (donné items avec les valeurs de temps stockées dans timeString):

val format = SimpleDateFormat("hh:mm aa") 
val calendar = GregorianCalendar.getInstance() 

val groups = items.groupBy { item -> 
    val date = format.parse(item.timeString) 
    calendar.setTime(date) 
    calendar.get(Calendar.HOUR_OF_DAY) 
} 

(runnable demo)

Voir:

+0

Merci, ça a marché. Merci beaucoup. –

+0

Comment se rendre aussi dans PM 03h00 le 02h00 actuel - groupe 03:00 PM? Une idée @hotkey? –

+0

@SirajSumra, voir [une autre démo] (https://try.kotlinlang.org/#/UserProjects/c3e46gmrb4nokp3nbdghrua2l4/f0rut7oncb0ppkalcrfbnh1jdp), là je a utilisé les chaînes formatées que les clés du groupe. Vous pourriez vouloir ajuster la logique qui règle l'heure, cependant. – hotkey