Android Kotlin 按本地化排序的工作日名称列表

问题描述 投票:0回答:1

我有一个小问题。

我创建了一个列表,其中包含一周的日期名称,我将其用作月历的标题行。

但问题是日历的第一行在不同的工作日开始,这是由手机的本地化决定的。例如美国周日,德国周一。

如何存档此排序?

fun getLocalizedShortWeekDays(): List<String> {
    val locale = Locale.getDefault()
    val listOfDayNames = DayOfWeek.entries.map { it.getDisplayName(TextStyle.SHORT, locale) }.toList()
    val orderedListOfDayNames = 

    return listOfDayNames
}

我想按照手机本地化的顺序对日期名称列表进行排序。

android list kotlin sorting
1个回答
0
投票

您可以使用 WeekFields.getFirstDayOfWeek() 并循环浏览条目:

fun getLocalizedShortWeekDays(): List<String> {
    val locale = Locale.getDefault()
    val firstDayOfWeek = WeekFields.of(locale).firstDayOfWeek
    val orderedListOfDayNames = List(7) {
        DayOfWeek.of(1 + (it + firstDayOfWeek.ordinal) % 7)
            .getDisplayName(TextStyle.SHORT, locale)
    }

    return orderedListOfDayNames
}
© www.soinside.com 2019 - 2024. All rights reserved.