我找到了一个解决方案,可以获得非常短的工作日名称,例如Google Calendar App。
以下是我的尝试:
String[] shortWeekDays = DateFormatSymbols.getInstance(Locale.getDefault()).getShortWeekdays();
结果是
Sun, Mon, Tue, Wed, Thu, Fri, Sat
Google日历(非常短的工作日名称)
S, M, T, W, T, F, S
我喜欢使用像Google日历这样的工作日名称
更新 我正在考虑获得工作日名称的第一个字母(在DateFormatSymbols.getShortWeekdays之后)但是对于某些语言(中文,新加坡,台湾),所有7个工作日的第一个字母都是相同的。见下面的测试
String[] weekDays = DateFormatSymbols.getInstance(Locale.CHINESE).getShortWeekdays();
// 星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
我正在考虑使用String资源但是我的应用程序基于当前使用的语言环境支持世界各地的所有语言,我很难为所有语言提供所有非常短的工作日名称。
有人有想法吗?谢谢!
答案 0 :(得分:2)
在审核了Java中提供的所有区域设置并检查其短工作日名称后。我的解决方案如下。它可能会帮助其他人
适合当地人:中国华人,新加坡华人,台湾华人
其他语言环境
答案 1 :(得分:0)
我见过的本地化日期名称的单字符缩写的唯一解决方案如下:
DateUtils.getDayOfWeekString(dayOfWeek, DateUtils.LENGTH_SHORTEST)
使用DateFormatSymbols.getShortWeekdays
然后从前面拉出字符在其他区域设置中不起作用。例如,在阿拉伯语中,这样做会在一周中的每一天产生相同的字符。
答案 2 :(得分:0)
/**
* @param day Int
* @return short day name
* Calendar.MONDAY -> Mon
*/
fun getShortDayName(day: Int): String {
val c = Calendar.getInstance()
c.set(Calendar.DAY_OF_WEEK, day)
return String.format("%ta", c)
}
有关格式化程序简短转换Formatter
要只获取第一个字母,可以使用TextView maxLength = 1或
getShortDayName(Calendar.TUESDAY)[0] //its will return 'T'