据我所知,在Java中我可以在正常(星期五)或短模式(星期五)获得工作日。但是,有没有办法只获得第一个字母?
我以为我可以使用“substring”获得第一个字母,但它对所有语言都不正确。例如,西班牙人的工作日是:Lunes,Martes,Miércoles,Jueves,Viernes,Sábado和Domingo,“Miércoles”的第一个字母是X而不是M,以区别于“Martes”。
答案 0 :(得分:9)
在Android中,您可以将SimpleDateFormat与" EEEEE"一起使用。在下一个例子中,你可以看到它。
SimpleDateFormat formatLetterDay = new SimpleDateFormat("EEEEE",Locale.getDefault());
String letter = formatLetterDay.format(new Date());
答案 1 :(得分:6)
如上所述,没有标准的Java支持。使用格式化字符串" EEEEE"但不保证可以在所有Android设备上运行。以下代码保证可在任何设备上运行:
public String firstLetterOfDayOfTheWeek(Date date) {
Locale locale = Locale.getDefault();
DateFormat weekdayNameFormat = new SimpleDateFormat("EEE", locale);
String weekday = weekdayNameFormat.format(date);
return weekday.charAt(0)+"";
}
答案 2 :(得分:3)
没有标准的Java API支持。
部分原因是许多(甚至大多数)语言没有传统的独特的单字母工作日缩写。例如,在英语中没有(M T W T F S S)。
在许多/大多数语言环境中不起作用 1 的(假设的)格式化选项将阻碍国际化,而不是帮助。
1 - 我的意思是在人类意义上。你可以发明一个约定,但人们不会理解缩写的含义。
答案 3 :(得分:1)
我意识到OP正在要求跨语言的标准,而这并没有解决它。但是,使用单个字符Day of Week缩写是一个标准。
回到大型机时代,使用1字符缩写为星期几是常见的,要么在1个字符字段中存储星期几(以节省宝贵的空间),要么将报告标题为单字符列。 “标准”是使用MTWRFSU,其中R代表星期四,U代表星期日。
我找不到任何明确的引用(这就是我引用“标准”的原因,但这里有几个例子: http://eventguide.com/topics/one_digit_day_abbreviations.html http://www.registrar.ucla.edu/soc/definitions.htm#Anchor-Days-3800
答案 4 :(得分:0)
我认为没有直接的java函数来获取第一个字母,也没有标准的方法来实现它。
您可以使用substring()java方法
来引用此链接以获取字符串日的第一个字母