首页 > 解决方案 > 如何在 LocalDateTime 中使用语言环境?

问题描述

我正在使用这个扩展功能来获取星期几:

private fun WeatherList.getDayOfWeek() =
        LocalDateTime.ofEpochSecond(dt.toLong(), 0, ZoneOffset.UTC).toLocalDate().dayOfWeek

dt - 我在 Unix 课堂上的日期时间

WeatherList 是我的课程:

@Serializable
@Parcelize
data class WeatherList(
    val dt: Int,
    val main: Main,
    val weather: List<Weather>,
    val clouds: Clouds,
    val wind: Wind,
    val visibility: Int,
    val pop: Double,
    val sys: Sys,
    val dt_txt: String,
) : Parcelable

我在想这应该使用语言环境作为一周中的输出日,但它总是英语。那么如何在星期几中使用语言环境?

标签: androidkotlin

解决方案


这是一个将 aLocale和纪元秒作为参数的示例,并返回该特定中常见的星期名称Locale

import java.time.LocalDateTime
import java.time.ZoneOffset
import java.time.format.TextStyle;
import java.util.Locale

fun WeatherList.getDayOfWeekName(locale: Locale, epochSecs: Int): String {
    return LocalDateTime.ofEpochSecond(epochSecs.toLong(), 0, ZoneOffset.UTC)
                        .dayOfWeek
                        .getDisplayName(TextStyle.FULL, locale);
}

您当然可以包含一个固定的并直接引用一些保存纪元秒的变量,但特别是最后一行以给定的语言和格式Locale为您提供了星期几的名称。Locale

过去Locale.GERMAN,纪元秒数1631264387将返回Freitag(那是德国星期五)。


推荐阅读