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

Posted

技术标签:

【中文标题】在java中获取日期的星期几的一个字母缩写【英文标题】:Get one letter abbreviation of week day of a date in java 【发布时间】:2013-06-02 07:24:28 【问题描述】:

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

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

【问题讨论】:

嗯,法语和意大利语都有同样的问题,但我从未见过这两种语言中使用过单字母缩写。哎呀,连English都有这个问题。 【参考方案1】:

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

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

【讨论】:

这在 API 16 上不起作用,它返回全天名称。在 API 18 及更高版本中似乎工作正常。 对于 API 16 或更早版本,DateUtils.getDayOfWeekString(dayOfWeek, DateUtils.LENGTH_SHORTEST) 这里怎么不写:developer.android.com/reference/java/text/SimpleDateFormat.html【参考方案2】:

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

【讨论】:

【参考方案3】:

没有标准的 Java API 支持这样做。

部分原因是许多(甚至可能是大多数)语言没有传统的唯一单字母工作日缩写。例如,在英语中没有 (M T W T F S S)。

在许多/大多数语言环境中不起作用的(假设的)格式选项1将成为国际化的障碍,而不是帮助。


1 - 我的意思是人类意义上的。你可以发明一个约定,但人们不会理解缩写的含义。

【讨论】:

【参考方案4】:

我意识到 OP 要求跨语言制定标准,但这并没有解决这个问题。但是有/曾经有一个使用单字符星期几缩写的标准。

在大型机时代,使用 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

【讨论】:

【参考方案5】:

我认为没有直接的 java 函数来获取第一个字母,也没有标准的方法。

可以参考这个链接使用substring() java方法获取字符串day的首字母

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

【讨论】:

我不知道第一个字母是否对所有语言都是正确的,因为所描述的问题。 我想您可以根据语言进行自己的映射,即。 Miércoles" 是 X ,而不是 X 显示 M 。但是如果你想支持大量的语言,这将是不可行的。它 我想支持所有语言:)

以上是关于在java中获取日期的星期几的一个字母缩写的主要内容,如果未能解决你的问题,请参考以下文章

Java日期查询

pandas通过DatetimeProperties对象获取日期对象在所在周的周几星期几的名称信息(week name)并生成新的数据列计算不同星期名称下其它数据列的均值

pandas使用to_datetime函数将字符串时间数据列转化为时间对象数据列通过DatetimeProperties对象获取日期对象在所在周的周几星期几的名称信息(week name)

javascript如何获取一个月前的日期并取出星期几

在excel的VBA里如何获取日期和星期几

在ACCESS中返回给定日期星期几的植的函数