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

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

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

【问题讨论】:

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

标签: java android date format


【解决方案1】:

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

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

【讨论】:

【解决方案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 。但是如果你想支持大量的语言,这将是不可行的。它
        • 我想支持所有语言:)
        猜你喜欢
        • 1970-01-01
        • 2018-08-13
        • 2017-12-16
        • 1970-01-01
        • 2015-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多