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

时间:2013-06-06 10:16:59

标签: java android date format

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

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

5 个答案:

答案 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方法

来引用此链接以获取字符串日的第一个字母

Given a string in Java, just take the first X letters