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

ubbxdtey  于 2021-06-30  发布在  Java
关注(0)|答案(5)|浏览(560)

据我所知,在java中,我可以在正常(星期五)或短模式(星期五)下获得工作日。但是,有没有办法只得到第一个字母?
我以为我可以用“子字符串”来得到第一个字母,但这并不适用于所有语言。例如,西班牙的工作日是:lunes、martes、mié罗克勒斯,朱伊夫斯,维尔内斯,维内斯á巴多和多明戈,还有“米”的第一个字母é“rcoles”是x而不是m以区别于“martes”。

zazmityj

zazmityj1#

如上所述,没有标准的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)+""; 
}
pqwbnv8z

pqwbnv8z2#

我意识到op要求的是跨语言的标准,但这并没有解决这个问题。但是有一个使用单字星期几缩写的标准。
在大型机时代,使用1个字符的缩写来表示星期几是很常见的,可以将星期几存储在1个字符的字段中(以节省宝贵的空间),也可以将报表标题设置为单字符列。“标准”是使用mtwrfsu,其中r表示星期四,u表示星期天。
我找不到任何明确的参考(这就是我引用“标准”的原因),但这里有几个例子:http://eventguide.com/topics/one_digit_day_abbreviations.htmlhttp://www.registrar.ucla.edu/soc/definitions.htm#anchor-天-3800

lh80um4z

lh80um4z3#

没有标准的javaapi支持这样做。
部分原因是许多(甚至大多数)语言没有传统的、唯一的一个字母的工作日缩写。例如,在英语中没有(m t w t f s)。
在许多/大多数地区不起作用的(假设的)格式化选项1将是国际化的障碍,而不是帮助。
我是说人类的感觉。你可以发明一个惯例,但是人们不理解缩写的意思。

ssgvzors

ssgvzors4#

我认为没有直接的java函数来获取第一个字母,也没有标准的方法来实现。
您可以使用substring()java方法引用此链接来获取字符串day的第一个字母
给定一个java字符串,只需取前x个字母

oug3syen

oug3syen5#

在android中,您可以使用simpledateformat和“eeeee”。在下一个例子中,您可以看到它。

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

相关问题