diff --git a/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesViewModel.kt b/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesViewModel.kt index 9227ef04..fbd41078 100644 --- a/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesViewModel.kt +++ b/feature/passes/src/main/java/com/rtbishop/look4sat/feature/passes/PassesViewModel.kt @@ -152,11 +152,21 @@ class PassesViewModel( } } + /** Returns a locale-appropriate date format for pass grouping headers. */ + private fun dateFormat(tz: TimeZone): SimpleDateFormat { + val pattern = if (Locale.getDefault().language == "zh") { + "yyyy'年'M'月'd'日' EEEE" + } else { + "EEE, dd MMM yyyy" + } + return SimpleDateFormat(pattern, Locale.getDefault()).also { it.timeZone = tz } + } + // Computes sunrise/sunset strings for each unique calendar day in the pass list, plus today for DeepSpace private fun computeSunTimes(passes: List, isUtc: Boolean): Map> { val stationPos = settingsRepo.stationPosition.value val tz = if (isUtc) TimeZone.getTimeZone("UTC") else TimeZone.getDefault() - val sdfDate = SimpleDateFormat("EEE, dd MMM yyyy", Locale.getDefault()).also { it.timeZone = tz } + val sdfDate = dateFormat(tz) val sdfTime = SimpleDateFormat("HH:mm", Locale.getDefault()).also { it.timeZone = tz } val result = LinkedHashMap>() // DeepSpace group always shows today's sun times @@ -180,7 +190,7 @@ class PassesViewModel( private fun groupPasses(passes: List, isUtc: Boolean): Map> { val tz = if (isUtc) TimeZone.getTimeZone("UTC") else TimeZone.getDefault() - val sdfDate = SimpleDateFormat("EEE, dd MMM yyyy", Locale.getDefault()).also { it.timeZone = tz } + val sdfDate = dateFormat(tz) val ordered = LinkedHashMap>() val deepSpace = passes.filter { it.isDeepSpace } if (deepSpace.isNotEmpty()) ordered["DeepSpace (period >225min)"] = deepSpace