gpt4 book ai didi

java - 在java中获取日期的星期几的一个字母缩写

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:20 29 4
gpt4 key购买 nike

据我所知,在 Java 中我可以获得正常(星期五)或短模式(星期五)的工作日。但是,有什么方法可以只获取第一个字母吗?

我以为我可以使用“substring”获取第一个字母,但它并不适用于所有语言。例如,西类牙的工作日是:Lunes、Martes、Miércoles、Jueves、Viernes、Sábado 和 Domingo,“Miércoles”的第一个字母是 X 而不是 M,以区别于“Martes”。

最佳答案

在 Android 中,您可以将 SimpleDateFormat 与“EEEEE”一起使用。在下一个示例中,您可以看到它。

SimpleDateFormat formatLetterDay = new SimpleDateFormat("EEEEE",Locale.getDefault());
String letter = formatLetterDay.format(new Date());

编辑:这实际上并不完全正确。 Android 上的结果可能不止一个字母(如果重要的话,也不是唯一的),但这就是我们所拥有的。这证明你不会在 Android 上获得这些特性,遍历所有语言环境。它是用 Kotlin 编写的,但当然也应该适用于 Java:

val charCountStats = SparseIntArray()
Locale.getAvailableLocales().forEach { locale ->
val sb = StringBuilder("$locale : ")
val formatLetterDay = SimpleDateFormat("EEEEE", locale)
for (day in 1..7) {
val cal = Calendar.getInstance()
cal.set(Calendar.DAY_OF_WEEK, day)
val letter: String = formatLetterDay.format(cal.time)
charCountStats.put(letter.length, charCountStats.get(letter.length, 0)+1)
sb.append(letter)
if (day != 7)
sb.append(',')
}
Log.d("AppLog", "$sb")
}
Log.d("AppLog", "stats:")
charCountStats.forEach { key, value ->
Log.d("AppLog", "formatted days with $key characters:$value")
}

结果是,在大多数情况下,它确实是一个字母,但对于许多情况来说,它更多,甚至可以达到 8 个字符(尽管它看起来可能更少,甚至是一个):

formatted days with 1 characters:4889
formatted days with 2 characters:471
formatted days with 3 characters:99
formatted days with 4 characters:58
formatted days with 5 characters:3
formatted days with 8 characters:3

显示为 3 个字母(而不仅仅是 3 个字母)的区域示例是“wo”(“Wolof”语言),因为这是一周中每一天使用上述格式的结果:

Dib,Alt,Tal,Àla,Alx,Àjj,Ase

关于java - 在java中获取日期的星期几的一个字母缩写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16959502/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com